是否有不使用框架的window.onload的通用替代品?

bul*_*ley 4 javascript jquery onload

在上一个问题中,我了解到我的JavaScript中的一个错误,该错误与在触发DOMReady事件之前在BODY元素上使用appendChild有关.

我能够通过将我的代码包装在window.onload事件中来解决这个问题.读到这一点,我了解到window.onload只支持一个监听器,我无法保证我不会破坏其他人的听众,或者其他人的听众不会破坏我的听众.

查看源代码$(document).ready(function(){});,我意识到可能有很多内容涉及该语法的简单性.

有没有一种通用的方式让我在不使用jQuery或其他JS库的情况下等待DOMReady事件?虽然看起来可以做到这一点,但我不希望对第三方库有任何依赖性,以便我的代码能够正常工作.

Las*_*olt 5

你可以这样做:

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
addLoadEvent(function() {
  /* more code to run on page load */
});
Run Code Online (Sandbox Code Playgroud)

onload使用附加功能将现有函数包装在新函数中.这取自http://www.webreference.com/programming/javascript/onloads/

但是,对于在文档就绪而不是onload上执行它(不同的东西,onload就是当所有内容都已下载时,文档被加载时),请看这个问题:$(document).ready等效没有jQuery