我正在尝试用我自己的函数替换网站的 window.onload
函数:
window.onload = function () {alert("TEST");};
但是,据我所知,它不起作用(我没有收到任何警报)。我包含了 //@run-at document-end
。我觉得是及时拦截window.onload
的问题。
最佳答案
document-end在 DOMContentLoaded 处执行脚本事件(另见 Tampermonkey docs ),所以如果页面很简单,则 onload事件可能已经被触发,您的函数将不会运行。
如果您想禁用/覆盖网页的 window.onload
功能:
// @run-at document-start
// @grant none
....................
window.onload = function () {alert("TEST");};
第一行将指示 Tampermonkey/Greasemonkey 尽快尝试注入(inject)您的用户脚本,第二行将在网页的上下文/环境中运行您的用户脚本,因为默认情况下所有用户脚本都在具有代理 DOM 的单独沙箱中运行并且不能设置/调用网页功能,反之亦然。
如果您已经有一些 @grant
key ,请改用 unsafeWindow
:
// @run-at document-start
// @grant unsafeWindow
// @grant GM_addStyle
....................
unsafeWindow.onload = function () {alert("TEST");};
关于javascript - Tampermonkey 替换 window.onload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32572637/