Chrome阻止额外的对话框?Javascript操作

Chrome blocking of additional dialogs? Javascript manipulation?

本文关键字:对话框 Javascript 操作 Chrome      更新时间:2023-09-26

Chrome为您提供了在网站上阻止其他警告框的选项。

他们到底是怎么做到的?他们是否直接操纵你的javascript,因为在你的代码的某个地方,你会有alert('hello'); .那么,一旦用户勾选"防止这个网站创建额外的对话框",这段代码会发生什么?

这样想,你的js与浏览器的交互,然后浏览器使用你的操作系统的api来做一些它自己不能做的事情。浏览器是中间人,它只是停止从该域/选项卡对其内部alert函数(最终显示对话框)的任何进一步调用。

Chrome(以及所有有此选项的浏览器)将简单地不显示任何内容为下一个警报调用,如果用户不希望他们出现。您的代码将按预期运行,但不会弹出警报。

底层代码似乎是:

  if (suppress_this_message) {
    // If we are suppressing messages, just reply as if the user immediately
    // pressed "Cancel".
    OnDialogClosed(reply_msg, false, string16());
  }

所以它不会显示任何东西;相反,它表现得好像用户立即按下按钮,也就是说,它表现得好像窗口立即关闭.