0

MacのFirefoxでこの例http://jsfiddle.net/yxzqY/を実行すると、確認プロンプトの約半分が「このウィンドウがそれ以上ダイアログを作成しないようにする」チェックボックスとともに表示されます。ユーザーがアラートを無効にできるようにすることは理解していますが、確認ボックスは制御フローの一部です。[OK]または[キャンセル]をクリックすると、次の一連のイベントが指示されます。無効にすると、アプリケーションが中断します。

確認プロンプトに依存するアプリケーションがたくさんありますが、Firefoxや他のブラウザがこれを実行しているのを見たことがありません(StackOverflowで質問を削除しようとしているのを目撃してください)-なぜここで発生するのですか?なぜそれは散発的にしか起こらないのですか?そして、どうすればそれがまったく起こらないようにすることができますか?

4

1 に答える 1

2

私が知る限り、「これ以上のダイアログを防止する」チェックボックスの基準は、ユーザーが短時間 (現在のバージョンの Firefox ではおそらく 5 秒程度) に複数のダイアログを続けて提示されたことです。 Chrome では 1 ~ 2 秒)。

このような状況で追加された理由は、悪意のあるページがユーザーを無限のダイアログ シーケンスに縛り付けるのを防ぐためです。

while(1) {
    alert("Is this annoying yet?");
}

アプリケーションでこのような確認ダイアログを多数使用することが予想される場合、ネイティブのalert()confirm().

于 2012-05-23T18:47:13.927 に答える