各浏览器对link标签onload/onreadystatechange事件支持的差异分析


Posted in Javascript onApril 27, 2011

1,onload事件

<!DOCTYPE HTML> 
<HTML> 
<HEAD> 
<meta charset="utf-8" /> 
<title>Link Element onload</title> 
<link type="text/css" rel="stylesheet" href="http://i3.sinaimg.cn/rny/webface/login/css/login101021_min.css" onload="alert(this)"/> 
</HEAD> 
<BODY> 
</BODY> 
</HTML>

IE6/7 :

各浏览器对link标签onload/onreadystatechange事件支持的差异分析

IE8/9 :

各浏览器对link标签onload/onreadystatechange事件支持的差异分析

Opera :

各浏览器对link标签onload/onreadystatechange事件支持的差异分析

即IE6/7/8/9/Opera都支持onload事件, Firefox/Safari/Chrome不支持。

注:用JS创建link标签再添加到head中,情况如上。
2,onreadystatechange事件

<!DOCTYPE HTML> 
<HTML> 
<HEAD> 
<meta charset="utf-8" /> 
<title>Link Element onreadystatechange</title> 
<link type="text/css" rel="stylesheet" href="http://i3.sinaimg.cn/rny/webface/login/css/login101021_min.css" onreadystatechange="alert(this)"/> 
</HEAD> 
<BODY> 
</BODY> 
</HTML>

IE6/7/8/9中弹出了两次,其它浏览器均没有弹。说明只有IE支持link元素的onreadystatechange事件。弹出两次分别是readyState为loading,complete状态。可使用readyState来判断载入情况。我们再使用JS动态创建link元素试试,
<!DOCTYPE HTML> 
<HTML> 
<HEAD> 
<meta charset="utf-8" /> 
<title>Link Element onreadystatechange</title> 
</HEAD> 
<BODY> 
<script> 
function createEl(type, attrs){ 
var el = document.createElement(type), 
attr; 
for(attr in attrs){ 
if(attrs.hasOwnProperty(attr)){ 
el.setAttribute(attr, attrs[attr]); 
} 
} 
return el; 
} 
var link = createEl('link', { 
href : 'http://i3.sinaimg.cn/rny/webface/login/css/login101021_min.css', 
rel : 'stylesheet', 
type : 'text/css' 
}); 
link.onreadystatechange = function(){ 
alert(this) 
} 
document.getElementsByTagName('head')[0].appendChild(link); 
</script> 
</BODY> 
</HTML>

IE6/7/8/9中仍然弹出了2次。Firefox/Safari/Chrome仍然没弹。貌似一切正常,但神奇的是这次在Opera中弹出了一次,说明Opera支持动态创建link元素时的onreadystatechange事件。

相关:

https://developer.mozilla.org/en/HTML/Element/link
http://msdn.microsoft.com/en-us/library/ms535848%28v=VS.85%29.aspx
http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-35143001

Javascript 相关文章推荐
JS启动应用程序的一个简单例子
May 11 Javascript
使用JavaScript switch case 另类写法
Mar 14 Javascript
JavaScript之HTMLCollection接口代码
Apr 27 Javascript
JQuery实现倒计时按钮的实现代码
Mar 23 Javascript
js判断变量是否未定义的代码
Mar 28 Javascript
判断一个变量是数组Array类型的方法
Sep 16 Javascript
js正则匹配出所有图片及图片地址src的方法
Jun 08 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
Jul 05 Javascript
JavaScript基础之this详解
Jun 04 Javascript
vue组件实践之可搜索下拉框功能
Nov 25 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
Aug 06 Javascript
jQuery实现评论模块
Aug 19 jQuery
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
Apr 27 #Javascript
js实时监听文本框状态的方法
Apr 26 #Javascript
Javascript中的window.event.keyCode使用介绍
Apr 26 #Javascript
Javascript中正则表达式的全局匹配模式分析
Apr 26 #Javascript
说明你的Javascript技术很烂的五个原因
Apr 26 #Javascript
jQuery学习总结之元素的相对定位和选择器(持续更新)
Apr 26 #Javascript
用jquery实现自定义风格的滑动条实现代码
Apr 26 #Javascript
You might like
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
Javascript学习笔记 delete运算符
2011/09/13 Javascript
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
判断是否存在子节点的实现代码
2016/05/18 Javascript
15个非常实用的JavaScript代码片段
2016/12/18 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
浅谈python对象数据的读写权限
2016/09/12 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
pymysql的简单封装代码实例
2020/01/08 Python
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
三维科技面试题
2013/07/27 面试题
星空联盟C# .net笔试题
2014/12/05 面试题
应届毕业生个人自荐信范文
2013/11/30 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
Python 键盘事件详解
2021/11/11 Python
Win11 PC上的Outlook搜索错误怎么办?
2022/07/15 数码科技