当我尝试使用prompt()命令时,如何阻止Chrome控制台出现以下错误?
此页面生成的window.prompt()对话框被禁止,因为 此页面不是前窗的活动选项卡。请确认 您的对话框由用户交互触发以避免这种情况 情况。 https://www.chromestatus.com/feature/5637107137642496
直到2-3天前,prompt()命令工作正常并打开一个我可以输入数据的对话框,现在它总是给我这个错误,即使我肯定在活动选项卡上。我检查了Chrome内容设置并允许检查弹出窗口。
谢谢!
答案 0 :(得分:3)
答案 1 :(得分:1)
您必须将开发人员窗口停靠在同一窗口中。 不要脱开一个单独的窗口。 这对我有帮助。 编辑:截图 In Undocked mode 这不是附加的活动窗口。 什么时候 It is docked to left || right || down the window 它正常工作
答案 2 :(得分:0)
基本上prompt()
仍然可以正常工作,但它必须是主代码的一部分(脚本预加载网页上载),否则,如果让我们说这是从开发工具尝试它根本不会工作 - 因为输出将显示在 Separate / Distinct 选项卡中,而不是您编码的选项卡(开发工具中的控制台)。
我想这是为了防止我们几年前进入的侵入行为,你正在浏览tab-x(例如英国广播公司新闻),而突然你会集中注意到标签(例如盗版网站)以获取更多< em> clickbait ,这都归功于提示和提醒。
为了确认或理解我在这里要解释的内容,请在您想要的任何标签上打开 console / dev 工具,粘贴:
setTimeout (function() {
prompt("Comprende ?")
},5000);
在点击返回键之后,通过点击任何不会将您重定向到打开 devtools 的选项卡上的新页面的任何地方,快速切换焦点,并在几秒后提示将起作用。
在执行检查之前基本上是提示它将要执行的选项卡是一个可能具有的大量打开标签中的主动关注点。
答案 3 :(得分:0)
我在子窗口中写了这一行,然后在子窗口中弹出了对话框,一切正常。
window.opener.confirm = window.confirm;
答案 4 :(得分:0)
在window.prompt()之前致电focus
window.focus(); // FIX: A window.prompt() dialog generated by this page was suppressed because this page is not the active tab of the front window.