如何在Chrome中禁用javascript弹出窗口/提醒?


19

对不起,如果被问到。我已经找到了几个无效的解决方案。不知道我做错了什么。

我不想禁用所有的JavaScript,只有Javascript警告框。弹出并强制您单击“确定”或X以关闭它们。

我发现用户脚本声称这样做(例如: http://userscripts.org/scripts/show/58252 )。我在开发通道上放置了chrome,使用--enable-user-scripts开关启动chrome,脚本显示为已安装。

但我仍然得到警报框。

未被禁用的示例警报框位于 http://wordswithfriends.net/ - 将任何垃圾字放入右侧边栏的单词验证器中。你得到一个弹出窗口告诉你它不是一个字。

Answers:


16

禁用警报框的唯一方法是安装扩展程序或用户脚本。您链接的用户脚本适用于Firefox Greasemonkey,不适用于Chrome。

另外, 你引用的行为不端的页面 是鬼鬼祟祟,并在一个“字验证器”中运行 iframe 用激活的代码 alert() 立即iframe重新加载。

但这是一个击败它的用户脚本:

// ==UserScript==
// @name        Wordswithfriends, Block javascript alerts
// @match       http://wordswithfriends.net/*
// @run-at      document-start
// ==/UserScript==

addJS_Node (null, null, overrideSelectNativeJS_Functions);

function overrideSelectNativeJS_Functions () {
    window.alert = function alert (message) {
        console.log (message);
    }
}

function addJS_Node (text, s_URL, funcToRun) {
    var D                                   = document;
    var scriptNode                          = D.createElement ('script');
    scriptNode.type                         = "text/javascript";
    if (text)       scriptNode.textContent  = text;
    if (s_URL)      scriptNode.src          = s_URL;
    if (funcToRun)  scriptNode.textContent  = '(' + funcToRun.toString() + ')()';

    var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
    targ.appendChild (scriptNode);
}

如果你真的想要禁用ALL alerts() 在所有页面上(不推荐),然后删除 // @match 线。


7
我接受了这个答案,我的老鼠爆炸了。奇迹般有效。非常感谢^^
CreeDorofl

别客气!乐意效劳。
Brock Adams

为什么不建议禁用所有警报?在未保存的进度页面上,除了“你真的想要退出此选项卡”之外,我从未遇到过有用的警报。
Coretek

如果页面在加载期间显示警报,则不起作用。
riv

@riv,如果您遇到不起作用的情况,请打开一个新问题。务必提供完整的方法来复制问题。
Brock Adams


0

如果您正在寻找一个工具,并且不想弄乱用户脚本 - 有一个很好的工具可以处理Windows系统上任何恼人的弹出窗口 - ClickOff 。你可以从下载 这里 。我检查过,它适用于SharePoint网站的“您所做的更改可能无法保存”警报。


这听起来很有趣,因为恼人的错误弹出窗口一般很好。是否允许您准确指定要自动确定/取消的对话框类型,还是以某种方式单独选择它们?
CreeDorofl

是的,您可以指定要关闭的对话框和要单击的按钮。
Serhiy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.