第一种方法,就是通过修改Object原型的方法来申明一个attachEvent:
Object.prototype.attachEvent = function(method,func)
{
if(!this[method]){
this[method]=func;
}
else{
this[method]=this[method].attach(func);
}
}
Function.prototype.attach=function(func){
var f=this;
return function(){
f();
func();
}
}
这样就可以像在ie中一样使用attachEvent方法:
$("pop_close").attachEvent("onclick",function(){
$("pop").style.display = "none";
return false;
});
第二种就是自己写一个函数,判断是否支持attachEvent,如果不支持则使用firefox中的addEventListener函数,下面是类似于jQuery中的写法:
var myAttachEvent = function(obj, evt, fn){
if (obj.addEventListener)
obj.addEventListener(evt, fn, false);
else if (obj.attachEvent)
obj.attachEvent("on" + evt, fn);
}
调用的时候以函数方式调用:
myAttachEvent($("pop_close"), "click", function(){
$("pop").style.display = "none";
return false;
});
$函数:
window.$ = function(id){
return document.getElementById(id);
};
另:detachEvent()兼容方法:
function myDetachEvent (obj,evt,fn) {
if (obj.removeEventListener)
obj.removeEventListener(evt,fn,false);
else if (obj.detachEvent)
obj.detachEvent('on'+evt,fn);
}
分享到:
相关推荐
IE11没有window.attachEvent方法处理方法,文档中有详细说明
window对象的attachEvent方法只在IE浏览器中有效,其它浏览器不支持这个方法,所以报错。 self.attachevent is not a function其实就是以前的代码, 没有做chrome、firefox浏览器兼容导致。 self.attachEvent(...
attachEvent的使用方法与传递参数[IE|firefox]
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
NULL 博文链接:https://zhang-yingjie-qq-com.iteye.com/blog/321486
02-attachEvent.html
本文实例讲述了javascript中...如果这样写,那么只有最后绑定的事件,这里是method3会被执行,这个时候我们就不能用onclick这样的写法了,主角改登场了,在IE中我们可以使用attachEvent方法 btn1Obj.attachEvent(onc
attachEvent与addEventListener区别适应的浏览器版本不同,同时在使用的过程中要注意
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]下面是关于ie与firefox event的详细区别window.event IE:有window.event对象 FF:没有window.event对象。可以通过给函数的参数传递event对象。如onmousemove=...
写 addEventListener 和 attachEvent 区别的博文不少,不过大部分都把重点放置于前者是Firefox chrome,后者只是存在于IE系列中
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
attachEvent方法 只支持IE678,不兼容其他浏览器 addEventListener方法 兼容火狐谷歌,不兼容IE8及以下 addEventListener方法 div.addEventListener('click',fn); div.addEventListener('click',fn2); function fn...
无标题文档 Click Me [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
attachEvent Retrofill 释放旧记忆并安装attachEvent改造! 随着 IE 的消失和 Edge 的出现,微软将删除所有并完全坚持 Web 标准。 这使得所有addEvent包装器功能完全过时。 不要让这种情况发生并立即安装attachEvent...