用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
Go_Rush的公告
<IFrame frameborder=0 marginwidth=0 marginheight=0 scrolling=no align=center src="http://www.bloggao.com/script.aspx?userid=11261&AdType=0&AdstyleID=11403" height=180 width=150 ></IFrame>
文章分类
存档

原创  我近期原创帖之1(看谁理解更深刻,关于defer,attachEvent,window.onload....) 收藏

本博客停止更新,新家地址 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  onload="javascript:alert('body onload=...')">


尤其值得注意的是:

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  onload="javascript:alert('body onload=...')">
&nbsp;
</body>
</html>

<script>alert('the last one')</script>


代码已经写得很清晰明了。
一个要求,先自己不要执行,看完代码立刻回贴写下上面代码的执行结果。
回贴后再检验自己的结果是否正确。  如果你写的结果不对,我们再聊聊。

上面代码最多最多可能弹出10个alert对话框。请把他们的弹出顺序依次写出来。

比如:  一定要在你调试之前写出来哦
attach1
attach2
window.onload
normal1
defer1
defer2
normal2
eventfor...
body onload=...
the last one...

如果你觉得某个语句不会弹出来,你就注明:(比如这样.)
defer2,normal2  不会出来

上面的几乎是大部分常用的在页面加载完毕之后再执行script的代码
如果你能一次无调试的情况下写对的话,说明你很不错了

发表于 @ 2006年06月02日 15:43:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:正则表达式使用详解(二) | 新一篇:本博客停止更新,新家地址 http://ashun.cnblogs.com/

  • 发表评论
  • 评论内容:
  •  
Copyright © Go_Rush
Powered by CSDN Blog