正如 Myforwik 所说,您连接的事件与您连接的window.onload = ...;
事件相同<body onload="...">
。这是window
load
事件。这两种挂钩方式都是旧的 DOM0 样式,该样式已经过时了一段时间。如果您同时指定两者,则后者将获胜,淘汰前者。如果多个脚本window.onload
独立设置,也是如此。
为避免此类问题,请使用 DOM2 样式的事件连接:
if (window.addEventListener) {
// DOM2 standard
window.addEventListener("load", handler, false);
}
else if (window.attachEvent) {
// Microsoft's precursor to it, IE8 and earlier
window.attachEvent("onload", handler);
}
else {
// Some pre-1999 browser
window.onload = handler;
}
function handler() {
}
多个 DOM2 处理程序可以附加到同一个事件,因此多个不相关的脚本可以订阅它。此外,DOM2 处理程序与 DOM0 处理程序愉快地共存。
因此,如果您更新用户脚本以使用上述内容,该<body onload="...">
页面将不受影响。