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

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

如果有人问起,我很抱歉。我已经找到了几个不起作用的解决方案。不知道我做错了什么。

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

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

但我仍然收到警告框。

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

答案1

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

此外,您引用的违规页面很狡猾,在代码中运行“单词验证器”,并在 iframe 重新加载时立即iframe触发。alert()

但是这里有一个可以打败它的用户脚本:

// ==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);
}

如果您确实想禁用alerts()所有页面上的所有功能(不推荐),那么请删除该// @match行。

答案2

至少一个扩展因为在Chrome 网上应用店。对我来说很管用,尽管听起来有点怀疑它有一个可选的广告支持模式,你可以在其设置页面中禁用它。(我没有找到该设置,但认为它不会损害零路由api.s13.us。)

答案3

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

相关内容