JavaScript的执行顺序及onload的事件的一些问题

今天早上出现了一个问题,同一个function在页面最下面调用和用onload调用结果不一样,在onload中调用会报错,我的经验一直告诉我,这两种方式是一样的,可以互用,但是为什么会报错呢,百思不得其解,于是上网搜索了一些资料。

开始看到网上的一篇评论,说是onload可能在js没有全部引完就会执行,开始我还真以为是这个原因,或来经过测试,和继续查资料发现onload应该是全部js加载完(不包括css)才执行的,开始那片文章误导了我,最后经过测试找到了原因,因为函数里面用了"document.write('....')"语句,当在页面调用时,会在函数位置写下括号里的语句,但是如果在onload里面写,就会覆盖整个页面,即整个页面只剩下括号内容了(...),解决的办法是取得head对象创建文本对象,head.appendChild(document.createTextNode("...."))。

问题解决了,同时在网上搜索资料的时候也学到了点有价值的东西。


JavaScript的执行顺序

b.js:[下载]

alert("5"); 


a.js:[下载]

alert("4");
document.write("<script src=b.js></scr"+"ipt>");
alert("6");


test.html:[下载]

<script src=a.js></script>
<script> 
alert("1");
document.write("<script src=b.js></scr"+"ipt>");
document.write("<script>alert("3")</scr"+"ipt>");
alert("2"); 
</script> 

 

执行test.html,可以看到打印的顺序是:4,6,5,1,3,2,5

得出的结论是:
1.同级的不同的代码块,代码块间的执行顺序为从上到下;
2.在代码中嵌入代码的情况下,先执行上层代码块,再执行子代码块;代码中嵌入代码是指一个文件引入另一个文件,而不是指所有的通过document.write形式打出的代码。

追加事件,比如一个onload执行多个函数

http://benlee.tw/blog/?p=222

if (window.addEventListener){

   window.addEventListener('load', method, false);

}else if (window.attachEvent){

   window.attachEvent('onload', method);

}

 

在页面中的javascript,要在网页完全加载完毕后执行,要在script标签中加defer.

<script defer type="text/javascript"> 

function method(){

   alert('');

}

</script>

















http://www.knowsky.com/338902.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值