Javascript 关于就绪状态多次更改
我使用此方法设置加载页面时的函数 它工作得很好,但我想在不同的页面上调用不同的函数集。问题是每次我包含这段代码时都会覆盖上一段代码,因此页面加载时只启动一个函数Javascript 关于就绪状态多次更改,javascript,Javascript,我使用此方法设置加载页面时的函数 它工作得很好,但我想在不同的页面上调用不同的函数集。问题是每次我包含这段代码时都会覆盖上一段代码,因此页面加载时只启动一个函数 document.onreadystatechange = function () { var state = document.readyState if (state == 'interactive') { } else if (state == 'complete') { myFunc(); } }
document.onreadystatechange = function () {
var state = document.readyState
if (state == 'interactive') {
} else if (state == 'complete') {
myFunc();
}
}
那么,我如何添加函数,而不是每次为onreadystatechange创建一个新函数呢?如果我理解正确,您需要
document.addEventListener()
。此方法允许您为同一事件分配多个函数
信息和示例代码的组合可在以下位置找到:
使用
addEventListener
。为什么要使用onreadystatechange
?听起来你应该用它来代替吗?DOMContentLoaded肯定也会发生同样的事情如果你想在不同的页面上运行不同的代码,只需链接到你想在其中运行的页面上运行的代码…实际上,DOMContentLoaded与addEventListener的组合确实可以很好地工作,谢谢。它为我提供了多次。奇怪。@CsabaToth此侦听器使用不同的readyState字符串值被多次调用-因此,开关/大小写。如果它使用相同的readyState值被多次调用,我猜多个侦听器被分配到同一个事件?
document.addEventListener('readystatechange', function(evt) {
switch (evt.target.readyState) {
case "loading":
// The document is still loading.
break;
case "interactive":
// The document has finished loading. We can now access the DOM elements.
break;
case "complete":
// The document and all sub-resources have finished loading.
myFunc();
break;
}
}, false);