首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

仅IE9/10/(Opera)与此同时支持script元素的onload和onreadystatechange事件

2012-09-12 
仅IE9/10/(Opera)同时支持script元素的onload和onreadystatechange事件如下?结果:IE6/7/8 : 弹出2IE9/10 :

仅IE9/10/(Opera)同时支持script元素的onload和onreadystatechange事件

如下

?

结果:

IE6/7/8 : 弹出2

IE9/10 : 弹出2,1

Firefox/Safari/Chrome/Opera : 弹出1


测试结果可以看出,

IE9后已经开始支持script的onload事件了。一直以来我们判断js文件是否已经加载完成就是用以上的两个事件。很久以前就知道IE中使用onreadystatechange事件,事件handler中使用readyState的值判断是否加载完成。其它浏览器使用onload事件。


这种写法的取巧之处在于onload和onreadystatechage都用同一个函数,Firefox/Safari/Chrome/Opera中不支持onreadystatechage事件,也没有readyState属性,所以 !this.readyState 是针对这些浏览器。readyState是针对IE浏览器,载入完毕的情况是loaded,缓存的情况下可能会出现readyState为complete。所以两个不能少。但由于IE9/10也已经支持onload事件了,会造成callback执行2次。


注:动态创建的script在Opera中是支持onreadystatechange事件的

?

相关:

http://www.w3.org/TR/html401/interact/scripts.html#h-18.2.1?

http://www.w3.org/TR/html5/scripting-1.html#script

https://developer.mozilla.org/En/HTML/Element/Script?

?

热点排行