我有一个要求,即只使用纯 JavaScript 而不是 jQuery。我需要在加载 DOM 后立即初始化一些变量(使用某些函数),而不是在页面完全加载时。简而言之,它不应该等待整个页面加载。在 jQuery 中,它可以很容易地使用document.ready()
函数来完成。
是否可以使用任何函数在 JavaScript 中实现它?
我有一个要求,即只使用纯 JavaScript 而不是 jQuery。我需要在加载 DOM 后立即初始化一些变量(使用某些函数),而不是在页面完全加载时。简而言之,它不应该等待整个页面加载。在 jQuery 中,它可以很容易地使用document.ready()
函数来完成。
是否可以使用任何函数在 JavaScript 中实现它?
一种“实用”的方法就是script
在文档末尾放置一个块(甚至不等同于 domready)
...
<script>...</script>
</body>
</html>
或使用 DomReady 事件的各种纯 js 实现之一,例如http://snipplr.com/view/6029/domreadyjs/
有时是这样实现的
<body>
<!--
All your html tags here
....
....
-->
<script type="text/javascript">
//this should execute after the above tags and elements have rendered
</script>
</body>
如果支持,您可以使用DOMContentLoaded
事件:
MSDN:http: //msdn.microsoft.com/en-us/library/windows/apps/hh868490.aspx
MDN:https ://developer.mozilla.org/en/DOM/DOM_event_reference/DOMContentLoaded
如果您真的想等待“就绪事件”,例如可以使用这种东西:
(function(w,evt,fn){
if (w.addEventListener){// W3C DOM
w.addEventListener(evt,fn,false);
}
else if (w.attachEvent) { // IE DOM
w.attachEvent("on"+evt, fn);
}
})(window,'load',function(){
// your code here
});
但最好简单地使用放置良好的“脚本”标签,因为您的代码可能会工作并更快开始