各浏览器对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 相关文章推荐
JavaScript 面向对象编程(1) 基础
May 18 Javascript
js判断选择的时间是否大于今天的代码
Aug 20 Javascript
JavaScript 中的日期和时间及表示标准介绍
Aug 21 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
Mar 21 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
Apr 17 Javascript
快速实现jQuery多级菜单效果
Feb 01 Javascript
react native 获取地理位置的方法示例
Aug 28 Javascript
JAVA面试题 static关键字详解
Jul 16 Javascript
vue中添加与删除关键字搜索功能
Oct 12 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
Nov 21 Javascript
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
echarts实现晶体球面投影的实例教程
Oct 10 Javascript
仅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
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
Javascript !!的作用
2008/12/04 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
JS+HTML5实现的前端购物车功能插件实例【附demo源码下载】
2016/10/17 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
Python的Flask框架中@app.route的用法教程
2015/03/31 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
Python实现购物车程序
2018/04/16 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
python使用KNN算法识别手写数字
2019/04/25 Python
在Python中表示一个对象的方法
2019/06/25 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
更夫岗位责任制
2014/02/11 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
英文道歉信
2015/01/20 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers