各浏览器对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面向对象编程之对象使用分析
Aug 19 Javascript
Ajax同步与异步传输的示例代码
Nov 21 Javascript
网页右侧悬浮滚动在线qq客服代码示例
Apr 28 Javascript
javascript使用正则表达式检测IP地址
Dec 03 Javascript
微信中一些常用的js方法汇总
Mar 12 Javascript
JavaScript声明变量名的语法规则
Jul 10 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
May 30 Javascript
js实现短信发送倒计时功能(正则验证)
Feb 10 Javascript
微信小程序 支付功能(前端)的实现
May 24 Javascript
vue2.0使用v-for循环制作多级嵌套菜单栏
Jun 25 Javascript
JavaScript中变量提升与函数提升经典实例分析
Jul 26 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
Apr 26 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
Yii操作数据库的3种方法
2014/03/11 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
2017/01/16 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
关于laravel 子查询 &amp; join的使用
2019/10/16 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
javascript fullscreen全屏实现代码
2009/04/09 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
javascript:json数据的页面绑定示例代码
2014/01/26 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
JavaScript DOM事件(笔记)
2015/04/08 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
[54:51]Ti4 冒泡赛第二轮LGD vs C9 3
2014/07/14 DOTA
python的三目运算符和not in运算符使用示例
2014/03/03 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
详解python pandas 分组统计的方法
2019/07/30 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
django连接mysql数据库及建表操作实例详解
2019/12/10 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
python用700行代码实现http客户端
2021/01/14 Python
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
师德培训心得体会2016
2016/01/09 职场文书
Vue2.0搭建脚手架
2022/03/13 Vue.js