各浏览器对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 相关文章推荐
超级酷和最实用的jQuery实例收集(20个)
Apr 21 Javascript
jQuery实现判断滚动条到底部
Jun 23 Javascript
javascript比较两个日期相差天数的方法
Jul 24 Javascript
基于jquery步骤进度条源码分享
Nov 12 Javascript
深入浅析Extjs中store分组功能的使用方法
Apr 20 Javascript
jquery css实现邮箱自动补全
Nov 14 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
Mar 07 Javascript
基于JS实现限时抢购倒计时间表代码
May 09 Javascript
vue购物车插件编写代码
Nov 27 Javascript
Angular实现的简单定时器功能示例
Dec 28 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
Sep 29 Javascript
vue3.0中使用element的完整步骤
Mar 04 Vue.js
仅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
php 如何获取数组第一个值
2013/08/06 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
php时间函数用法分析
2016/05/28 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
JQuery遍历DOM节点的方法
2015/06/11 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
vue使用nprogress实现进度条
2019/12/09 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
详解python中的json的基本使用方法
2016/12/21 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
python监控键盘输入实例代码
2018/02/09 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
使用python绘制温度变化雷达图
2019/10/18 Python
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
党员2014两会学习心得体会
2014/03/17 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
感恩教师节主题班会
2015/08/12 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python