是否可以通过GreaseMonkey修改/删除<body onload="...">
事件?
有问题的代码是:
<body onload="if (document.body.scrollIntoView && (window.location.href.indexOf('#') == -1 || window.location.href.indexOf('#post') > -1)) { fetch_object('currentPost').scrollIntoView(true); }">
我想完全阻止它执行(即使URL中没有哈希,这也是一个令人讨厌的vBulletin功能,当使用“后退”按钮时,它显然也会触发)。
答案 0 :(得分:2)
是的,只要DOM可以与Greasemonkey交互使用,就可以通过覆盖<body onload="..." ...
来拦截它(可能也可以在Chrome中使用,但是没有经过测试)。
这有效:
// ==UserScript==
// @name _Block inline onload function
// @namespace _pc
// @include http://YOUR_SERVER/YOUR_PATH/*
// @run-at document-start
// ==/UserScript==
document.addEventListener ("readystatechange", FireWhenReady, true);
function FireWhenReady () {
this.fired = this.fired || false;
if ( document.readyState != "uninitialized"
&& document.readyState != "loading"
&& ! this.fired
) {
this.fired = true;
document.body.onload = function () {
console.log ("body onload intercepted.");
};
}
}