我正在处理一个JavaScript循环,它会在循环进行时作为弹出窗口显示每个键值。
为了加快进程,我勾选了“阻止此页面创建其他对话框”的框。通常这只是抑制一个例程的弹出窗口,但它们没有回来。
在Google Chrome中,来自该站点的alert()消息不再弹出。其他网站可以,但该站点不能。
有人遇到过这种情况吗?
问:如何重置该站点的alert()消息?
我正在处理一个JavaScript循环,它会在循环进行时作为弹出窗口显示每个键值。
为了加快进程,我勾选了“阻止此页面创建其他对话框”的框。通常这只是抑制一个例程的弹出窗口,但它们没有回来。
在Google Chrome中,来自该站点的alert()消息不再弹出。其他网站可以,但该站点不能。
有人遇到过这种情况吗?
问:如何重置该站点的alert()消息?
未经测试,但如果您再次遇到这个问题,我认为在隐身窗口中打开该网站将会重置对话框。
编辑:我添加了这个答案,它适用于当前的Chrome版本。更新可能已经使此步骤不必要(请不要标记为负面答案!)
来自OP的留言:
解决方法是重新启动浏览器。失去所有标签?不!
然而,有一种方法可以重新启动浏览器而不会失去所有标签。
安装Session Manager插件。Session Manager有适用于Chrome和Firefox的版本。
Session Manager维护一个正在运行的打开标签列表,并在意外重启或系统崩溃后自动询问您是否要重新打开它们(“恢复会话”)。
此外,Session Manager还允许您按需保存标签并在以后的时间或重新启动后重新加载它们。您可以随时保存您的“会话”(所有打开的标签),并为该会话指定任何名称。
最后,在重新加载以前的会话时,您还可以选择重新打开哪些标签以及忽略哪些标签。
无论是在Chrome还是Firefox中,都不能没有它。
如果您使用IE……好吧,您还有其他问题。
如果你想检测它们是否被阻止,你需要自己处理显示的消息,但要覆盖原生的警告/确认框。
window.nativeAlert = window.alert;
window.alert = function (message) {
var timeBefore = new Date();
var confirmBool = nativeAlert(message);
var timeAfter = new Date();
if ((timeAfter - timeBefore) < 350) {
MySpecialDialog("You have alerts turned off, turn them back on or die!!!");
}
}
window.nativeConfirm = window.confirm;
window.confirm = function (message) {
var timeBefore = new Date();
var confirmBool = nativeConfirm(message);
var timeAfter = new Date();
if ((timeAfter - timeBefore) < 350) {
MySpecialDialog("You have alerts turned off, turn them back on or die!!!");
}
return confirmBool;
}
显然我已将时间设置为3.5毫秒。但经过一些测试,我们只能在大约5毫秒左右点击或关闭对话框。
<script type="text/javascript" src="script.js"></script>"
关于脚本命令放置在 body 结束前的问题,Roberto 的回答对我很有帮助。我已经花了几个小时来尝试弄清楚为什么我的控制台命令无法正常工作。
你所需要做的就是重新启动你的浏览器。尝试在另一个浏览器上操作,看看它是否可以用(例如,你能否看到弹出框),如果可以,那么你只需要重新启动你的浏览器来解决它。
这种情况曾经发生在我的 Google Chrome 上,我通过退出并重新打开浏览器来解决了它。
alert
,开始使用控制台! - bfavaretto