各浏览器对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中push()的用法(数组添加元素)
Nov 25 Javascript
js+HTML5实现视频截图的方法
Jun 16 Javascript
深入理解jQuery中的事件冒泡
May 24 Javascript
浅谈angular懒加载的一些坑
Aug 20 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
Sep 20 Javascript
vue.js实现表格合并示例代码
Nov 30 Javascript
EasyUI折叠表格层次显示detailview详解及实例
Dec 28 Javascript
ES6入门教程之let和const命令详解
May 17 Javascript
JavaScript函数apply()和call()用法与异同分析
Aug 10 Javascript
Vue指令指令大全
Feb 09 Javascript
JavaScript实现联动菜单特效
Jan 07 Javascript
Javascript如何实现扩充基本类型
Aug 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
PHP 开发环境配置(测试开发环境)
2010/04/28 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
2017/10/19 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
2012/10/11 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
python设置检查点简单实现代码
2014/07/01 Python
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
Python基于百度云文字识别API
2018/12/13 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
学python爬虫能做什么
2020/07/29 Python
Python实现京东抢秒杀功能
2021/01/25 Python
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
法院实习人员自我鉴定
2013/09/26 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
2014年办公室文秘工作总结
2014/12/09 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android
Java 数组的使用
2022/05/11 Java/Android
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript