当前位置:首页 > 开发 > Web前端 > 前端 > 正文

firefox不支持attachEvent的解决方法

发表于: 2011-05-05   作者:coral0212   来源:转载   浏览次数:
摘要: 第一种方法,就是通过修改Object原型的方法来申明一个attachEvent: Object.prototype.attachEvent = function(method,func) { if(!this[method]){ this[method]=func; } else{ this[method]=this[method].attach(func); } } Func

第一种方法,就是通过修改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);

}

 

firefox不支持attachEvent的解决方法

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title&g
如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title&g
如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title&g
解决selenium不支持firefox低版本的问题 在火狐浏览器升级后,突然发现webdriver运行脚本的时候不能
原文:http://blog.sina.com.cn/s/blog_6ebc885a01013faj.html jQuery.Autocomplete 是jquery的流行
分析错误产生的原因: GridView是利用SqlDataSourse进行数据绑定,在绑定的时候生成Insert,Delete
使用IE6访问sharepoint2010的提示如下: <SharePoint:WarnOnUnsupportedBrowsers runat="server"
按照官方提供的“UCenter 1.5.0 安装图文教程”,我开始装上php5,mysql5,apache2.2,结果在http://1
WIN2003服务器加强了IIS6的MIME验证,一切未注册扩展文件格式统统显示404错误。手动在IIS中HTTP头-&g
servlet实现下载时,如果客户端安装了迅雷,发现不能正确下载。查找原因后发现是http头设置的问题,
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号