0

ユーザースクリプトの実行の特定の時点で表示されるウィンドウ確認ボックスで「OK」をクリックする必要があります。通常、それを行う必要があるときは、ウィンドウが確認するかどうかに関係なく、実行時にソース コードを確認するだけです。

例えば

...onclick="DoWathever()">

次に、ネイティブの DoWathever() を呼び出して、確認ウィンドウをバイパスします。問題は、window.confirm を呼び出している毛布の下の関数にあるため、この単純な方法を使用してバイパスすることはできません。

そうは言っても、私はすでにスタックオーバーフローとグーグルで考えられる解決策を調べており、その1つを見つけました:アラートで「OK」をクリックするか、jquery/javascriptを介してダイアログを確認しますか?

これは基本的に、それを使用して「偽の」window.confirmを作成することにより、デフォルトの確認をオーバーライドすることを示唆しています:

window.alert = function() {
    console.log.apply(console, arguments);
    return true;
};

奇妙なことに、このソリューションを使用して2種類の経験がありました。

1)コンソールで手動で宣言するだけで(通常、スクリプトに実際に含める前にテストするために行います)、完全に機能し、ダイアログボックスを確認します。

2)スクリプトにそれを含めると(他のすべての前に気をつけてください)、それは機能せず、JavaScriptはいつものように確認ウィンドウで私に尋ねます.

それで...ええ、2)で機能しない理由、または可能な代替ソリューションはありますか?

ありがとう。

4

1 に答える 1

0

ユーザースクリプトでwindowは、ページレベルが参照するものと同じものを参照しないwindowため、これを行う必要があります:

unsafeWindow.alert = function() {
    console.log.apply(console, arguments);
    return true;
};

ただし、その前に危険性を読んでくださいunsafeWindow

于 2013-08-21T14:36:01.943 に答える