gpt4 book ai didi

javascript - "prevent this page from creating additional dialogs"的规则

转载 作者:数据小太阳 更新时间:2023-10-29 06:08:20 25 4
gpt4 key购买 nike

我试图了解 Firefox 关于在对话框上添加“阻止此页面创建其他对话框”的行为。

使用 jquery,如果我添加以下监听器:

//html
<input class="testInput" />

//javascript
$('.testInput')
.click(function(){ alert('clicked') })
.keyup(function(){ alert('keyup') })
  1. 点击输入时,提示框正常出现,直到~第 13 次。
  2. 另一方面,当按下一个键时,第二个消息框已经出现消息“阻止此页面创建额外的对话框”。实际上,似乎有一些超时,如果我等待比如两次击键之间间隔 2 秒,消息就会消失。

根据我的非正式测试,2. 实际上适用于任何时候警报框不是从 onclick 回调中调用的(例如:keyup 回调,显示警报框以响应 ajax 操作... )

我在 Ubuntu 下使用 Firefox 9.0.1,据我所知,我还没有调整 firefox 关于这些阈值的设置。我想它会发生在任何最新版本的任何浏览器上。

我正在使用 jQuery 库,但我认为它与此无关。

我的问题是:使此警告出现在对话框中的确切规则是什么?

[编辑]

使用 Chromium/Ubuntu(版本 17.0.963.26),阈值似乎只是两个对话框之间的延迟。

您可以从 jsfiddle here 测试它(谢谢罗里·麦克罗森)

最佳答案

确切规则:弹出对话框之间的时间间隔。用于确定这一点的值在 SUCCESSIVE_DIALOG_TIME_LIMIT

中设置

查看代码段下方链接中的第 2614 行:

nsGlobalWindow::DialogOpenAttempted()

TimeDuration dialogDuration(TimeStamp::Now() - topWindow->mLastDialogQuitTime);

if (dialogDuration.ToSeconds() < Preferences::GetInt("dom.successive_dialog_time_limit",SUCCESSIVE_DIALOG_TIME_LIMIT)){topWindow->mDialogAbuseCount++;return (topWindow->GetPopupControlState() > openAllowed || topWindow->mDialogAbuseCount > MAX_DIALOG_COUNT);}topWindow->mDialogAbuseCount = 0; return false;}

Link to source

关于javascript - "prevent this page from creating additional dialogs"的规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8851299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com