javascript - 重写全局alert()函数在Tampermonkey中不起作用

标签 javascript greasemonkey alert tampermonkey

在 Greasemonkey 中我可以重写全局 alert()功能:

window.alert = function() {...}

它可以在任何地方工作。
但是,在 Tampermonkey (Chrome) 中,它仅适用于它自己的脚本。

为什么? 我可以让它在全局范围内发挥作用吗?

最佳答案

事实上,这有时只在 Greasemonkey 中有效。 grant mode必须是none——我建议不要这样做。正如您所发现的,意外地触发该模式会导致脚本不可移植——以及其他超出本问题范围的错误。

要使此代码在 Tampermonkey(以及 Greasemonkey)上运行,请使用 unsafeWindow ,像这样:

// ==UserScript==
// @name     _YOUR_SCRIPT_NAME
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant    unsafeWindow
// ==/UserScript==

unsafeWindow.alert = function() {...}


或者使用脚本注入(inject),如this answer所示.



@grant unsafeWindow 指令用于 Greasemonkey——恢复沙箱并允许使用 unsafeWindow。这使得相同的脚本在 Tampermonkey 和 Greasemonkey 中以相同的方式工作。

关于javascript - 重写全局alert()函数在Tampermonkey中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15859439/

相关文章:

javascript - 将模态显示为普通 div - Reactstrap

jquery - 在 GreaseMonkey 中使用 jQuery 1.4 而原始页面使用 jQuery 1.3(不同版本)?

javascript - 我如何编写路由器以从 URL 参数打开 Joomla Squeezebox 模式?

mysql - 我可以在 FireFox 中执行 MySQL SQL 语句吗?

greasemonkey - 为什么 downloadURL 和 updateURL 键的使用被称为不寻常,它们是如何工作的?

ssh - 使用 snort/suricata,我想为每次登录我的家庭网络失败时生成 SSH 警报

javascript - 具有多个选项的警报

用于检查提示字符是否在数组中并提示答案的 Javascript 程序

javascript - knockout 条件绑定(bind)(但不是 native "if"方式)

javascript - Google map 缩放级别功能