本博客停止更新,新家地址 http://ashun.cnblogs.com/
1.[共同学习]贴段代码,大家来写执行结果,看谁理解更深刻,关于defer,attachEvent,window.onload....
这个帖子总结了大部分常用的在页面加载完毕之后再执行script的代码的几种常用方法。
最后总结了window.attachEvent, <script defer>等方式加载函数的一些细节
帖子原文http://community.csdn.net/Expert/topic/4697/4697838.xml?temp=.1720087
window.attachEvent("onload",function(){alert('attach1')})
function window.onload(){alert('window.onload')}
function window::onload(){alert('window.onload')}
<script defer> alert('defer1')</script>
<SCRIPT event=onload for=window language=JavaScript>
alert('eventfor...')
</SCRIPT>
<body οnlοad="javascript:alert('body οnlοad=...')">
尤其值得注意的是:
1.window.attachEvent是随机运行的
<script>
window.attachEvent("onload",function(){alert('1')})
window.attachEvent("onload",function(){alert('2')})
window.attachEvent("onload",function(){alert('3')})
window.attachEvent("onload",function(){alert('4')})
window.attachEvent("onload",function(){alert('5')})
//结果肯定不是1,2,3,4,5 也不是5,4,3,2,1
</script>
2.defer 按照后后进先出的次序执行
<script defer>...</script>
原文内容:
<html>
<script>
window.attachEvent("onload",function(){alert('attach1')})
window.attachEvent("onload",function(){alert('attach2')})
</script>
<script>function window.onload(){alert('window.onload')}</script>
<script> alert('normal.1') </script>
<script defer> alert('defer1')</script>
<script defer> alert('defer2')</script>
<script> alert('normal.2') </script>
<SCRIPT event=onload for=window language=JavaScript>
alert('eventfor...')
</SCRIPT>
<body οnlοad="javascript:alert('body οnlοad=...')">
</body>
</html>
<script>alert('the last one')</script>
代码已经写得很清晰明了。
一个要求,先自己不要执行,看完代码立刻回贴写下上面代码的执行结果。
回贴后再检验自己的结果是否正确。 如果你写的结果不对,我们再聊聊。
上面代码最多最多可能弹出10个alert对话框。请把他们的弹出顺序依次写出来。
比如: 一定要在你调试之前写出来哦
attach1
attach2
window.onload
normal1
defer1
defer2
normal2
eventfor...
body οnlοad=...
the last one...
如果你觉得某个语句不会弹出来,你就注明:(比如这样.)
defer2,normal2 不会出来
上面的几乎是大部分常用的在页面加载完毕之后再执行script的代码
如果你能一次无调试的情况下写对的话,说明你很不错了