我有一个要求,指出只使用普通的JavaScript而不使用jQuery。我需要在DOM加载后立即初始化一些变量(使用某个函数),而不是在页面完全加载时。总之,它不应该等待整个页面加载。在jQuery中,可以使用document.ready()函数轻松完成。document.ready like javascript中的功能?
是否可以使用任何函数在JavaScript中实现它?
我有一个要求,指出只使用普通的JavaScript而不使用jQuery。我需要在DOM加载后立即初始化一些变量(使用某个函数),而不是在页面完全加载时。总之,它不应该等待整个页面加载。在jQuery中,可以使用document.ready()函数轻松完成。document.ready like javascript中的功能?
是否可以使用任何函数在JavaScript中实现它?
一个“实用”的方式只是放置一个script
块文档结束之前(甚至是不是真的等同于domready中)
...
<script>...</script>
</body>
</html>
或使用各种纯JS实现domready中的事件之一,像http://snipplr.com/view/6029/domreadyjs/
谢谢F.Calderan ...你提供的链接很棒.. :) – 2012-07-31 12:17:14
它有时达到这样
<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
});
但它确实更好,只需使用一个放置好的'脚本'标签,因为你的代码可能会工作并尽快开始
不,回传给'document.read y()'只要** DOM加载**就执行。如果你只是想在页面加载时执行一些代码,把它放在'head'中。如果您想举一些例子,我们可以帮助您更好。如果你真的想要相同的功能,只需将脚本放在'body'的末尾。 – 2012-07-31 11:33:14
jQuery实际上是开源的,所以如果你想要这种确切的行为,那就去复制那部分 - 这是纯粹的javascript。 – Niko 2012-07-31 11:35:40
可能重复[javascript domready?](http://stackoverflow.com/questions/1206937/javascript-domready) – 2012-07-31 11:36:18