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);