为什么火狐允许禁用确认框

Why is Firefox allowing disabling of confirmation boxes?

本文关键字:确认 许禁用 火狐 为什么      更新时间:2023-09-26
在我的

Mac上的Firefox上运行此示例 http://jsfiddle.net/yxzqY/,大约一半的确认提示出现"阻止此窗口创建更多对话框"复选框。我知道允许用户禁用警报,但确认框是控制流的一部分 - 单击确定或取消指示下一个事件序列 - 禁用它们会破坏应用程序。

我看到很多应用程序依赖于确认提示,并且从未见过Firefox或任何其他浏览器这样做(证人试图删除StackOverflow上的问题) - 那么为什么会在这里发生呢?为什么它只是偶尔发生?我们如何才能完全防止它发生?

据我所知,"防止进一步对话框"复选框的标准是用户在短时间内连续看到多个对话框(在当前版本的 Firefox 中可能为五秒左右;在 Chrome 中为一两秒)。

在这些情况下添加它的原因是防止恶意页面将用户与无穷无尽的对话框序列捆绑在一起:

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

如果你预计你的应用程序将使用很多这样的确认对话框,我建议你使用 DOM 对话框(例如,http://jqueryui.com/demos/dialog/)而不是本机alert()confirm()