今天学习了一下attachEvent和addEventListener这两个方法
具体代码如下:
=============================================
<html>
<script language="javascript">
/*
页面加载时在页面内放置一个层
*/
document.writeln("<div id='divMix'> </div>");
</script>
<script language="javascript">
/*
创建一个按钮,奖其放在先前放置的层内
使用attachEvent或者addEventListener方法不其注册事件
*/
var btn=document.createElement("input");
btn.setAttribute("type","button");
btn.setAttribute("id","btnEle");
btn.setAttribute("value","点击我");
/*
判断浏览器类型
我的机器装了4种浏览器(IE,傲游,火狐,netscape)
我试验的结果是
IE,傲游支持attachEvent;而火狐,netscape支持addEventListener
*/
if(btn.attachEvent){
btn.attachEvent("onclick",method1);
btn.attachEvent("onclick",method2);
btn.attachEvent("onclick",method3);
/*
三个方法调用的顺序是method2>method3>method1
而很多人的博客上看到的却是method3>method2>method1
很是奇怪,不知是不是浏览器版本的问题,当前IE6.0
*/
}
else if(btn.addEventListener){
btn.addEventListener("click",method1,true);
btn.addEventListener("click",method2,true);
btn.addEventListener("click",method3,true);
}
/* 获取先前创建的层对象 */
var div=document.getElementById("divMix");
/* 使用typeof运算符判断获取的层对象是否存在
如果存在则奖创建的按钮放到层里面,反之则提示没有
找到相关对象
*/
if(typeof(div)=="object"){
div.appendChild(btn);
/*
火狐,netscape好像不支持appendChild这个方法
所以在火狐,netscape看不到效果
*/
}else{
alert("没有找到相关对象!");
}
function method1(){
alert("method1()");
}
function method2(){
alert("method2()");
}
function method3(){
alert("method3()");
}
</script>
<body>
</body>
</html>
分享到:
相关推荐
NULL 博文链接:https://zhang-yingjie-qq-com.iteye.com/blog/321486
attachEvent与addEventListener区别适应的浏览器版本不同,同时在使用的过程中要注意
写 addEventListener 和 attachEvent 区别的博文不少,不过大部分都把重点放置于前者是Firefox chrome,后者只是存在于IE系列中
(FF下) 对象名.attachEvent(“事件名”,函数名);(IE下) 说明: 事件名称,要注意的是”onclick”要改为”click”,”onblur”要改为”blur”,也就是说事件名不要带”on”。 函数名,记住不要跟括号最后一个参数是个...
下面小编就为大家带来一篇浅谈addEventListener和attachEvent的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在js中绑定多个事件用到的是两个方法:attachEvent和addEventListener,但是这两个方法又存在差异性 attachEvent方法 只支持IE678,不兼容其他浏览器 addEventListener方法 兼容火狐谷歌,不兼容IE8及以下 ...
Mozilla中: addEventListener的使用方式: target.addEventListener(type, listener, useCapture); target: 文档节点、document、window 或 XMLHttpRequest。 type: 字符串,事件名称,不含“on”,比如“click”...
这时就要用window.attachEvent和window.addEventListener来解决一下。 下面是一个解决方法。至于attachEvent和addEventListener的用法,可以自己Google或百度一下。 代码如下: if (document.all){ window....
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
注意原因: window对象的attachEvent方法只在IE浏览器中有效,其它浏览器不支持这个方法,所以...因为chrome浏览器绑定事件不支持attachevent而支持addEventListener。 下面是临时解决方法: if(!self.addEventListe
JS动态添加事件的方法有很多,我们可以使用setAttribute、attachEvent 和 addEventListener等等,感兴趣的朋友可以参考下
关于用脚本设置onload事件句柄 ... [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]关于用脚本绑定事件句柄 IE 下用 attachEvent, FF 下用 addEventListener相关讨论如下:http://search.blueidea.com/?q=addE
在使用 addEventListener 或 attachEvent 时,需要注意 IE 浏览器的兼容性问题,IE 浏览器使用 attachEvent 方法,而不是 addEventListener 方法。因此,在编写跨浏览器兼容的代码时,需要使用条件语句来判断浏览器...