如何在 Chrome 中禁用 javascript 弹出窗口/警报?

Cre*_*ofl 22 google-chrome javascript alert userscripts

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

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

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

但我仍然收到警报框。

http://wordswithfriends.net/是一个没有被禁用的示例警告框- 将任何垃圾词放入右侧边栏的词验证器中。你会得到一个弹出窗口,告诉你这不是一个词。

Bro*_*ams 20

禁用警报框的唯一方法是安装扩展程序或用户脚本。您链接的用户脚本适用于 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);
}
Run Code Online (Sandbox Code Playgroud)

如果您真的想alerts()在所有页面上禁用 ALL (不推荐),请删除该// @match行。

  • 我非常努力地接受了这个答案,我的鼠标爆炸了。奇迹般有效。非常感谢^^ (7认同)