`
coral0212
  • 浏览: 101509 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

firefox不支持attachEvent的解决方法

    博客分类:
  • UI
阅读更多

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

}

 

分享到:
评论

相关推荐

    浏览器兼容(支持IE和firefox)

    6. **CSS3属性**:如渐变、阴影、圆角等在IE6和Firefox早期版本中不支持,需要使用图片或者渐进增强的方式来实现。 7. **PNG透明度**:IE6不支持PNG24位的透明,需要使用`AlphaImageLoader`滤镜解决。 8. **事件...

    Javascript在IE和FireFox中的兼容处理

    - IE支持`document.all`来获取所有元素,Firefox则不支持。应优先使用`document.getElementById`或`querySelector`等标准方法。 4. **input的type属性问题** - 不同浏览器对某些HTML5新类型的输入框支持不同,如`...

    Firefox浏览器兼容JS脚本

    获取DOM元素的属性值时,IE支持直接使用属性名来获取,而Firefox只支持通过`getAttribute()`方法获取。为了提高代码的兼容性,建议统一使用`getAttribute()`方法来获取属性值。 ```javascript // IE var value = ...

    Firefox和IE兼容参考

    在网页开发过程中,Firefox(火狐浏览器)和Internet Explorer(IE浏览器)的兼容性问题一直是一大挑战。这两个浏览器在解析HTML、CSS以及JavaScript时有着不同的实现方式,导致某些代码在Firefox下正常运行,但在IE...

    firefox3中onreadystatechange事件不会触发

    查看博文链接(https://helius1214.iteye.com/blog/633807)可能提供更具体的解决方案和讨论,因为这个链接指向一个IT社区的博客文章,其中可能包含了关于Firefox 3中`onreadystatechange`事件问题的深入分析和修复...

    IE和Firefox对JavaScript的兼容

    例如,IE较早版本(如IE6、7)不支持ES5的一些新特性,如数组的forEach方法或对象的getter和setter属性,而Firefox则较早地实现了这些标准。开发者在编写跨浏览器的代码时,需要考虑这些差异,或者使用像jQuery这样...

    BlueBala » 兼容IE和Firefox的事件模型(拖动)

    本文将深入探讨如何创建一个兼容Internet Explorer(IE)和Firefox浏览器的事件模型,特别是在实现拖动功能时所面临的挑战和解决方案。 首先,我们需要理解IE和Firefox在事件处理上的差异。在IE中,事件处理主要...

    IE和Firefox的Javascript兼容性总结[定义].pdf

    - `innerHTML`和`innerText`:IE支持`innerText`,Firefox支持`textContent`,使用时需要考虑兼容性。 解决这些问题通常需要编写条件语句,使用库(如jQuery)或适配器模式来封装差异。理解这些兼容性问题并采取...

    梅花雨日历控件3.0(修改支持Firefox)

    标题提到的“梅花雨日历控件3.0(修改支持Firefox)”表明原版的3.0版本在Firefox浏览器上存在兼容性问题,因此进行了相应的修复和优化,使其能够在Firefox环境下正常运行。 在Web开发中,跨浏览器兼容性是一个常见的...

    javascript和css在IE和Firefox中的不同点及解决兼容性的方案

    - **常量定义**:Firefox 支持 `const` 和 `var` 定义常量,而 IE 只支持 `var`。为保持一致,应统一使用 `var` 关键字定义常量。 7. **input.type 属性** - **属性可读写性**:IE 中 `input.type` 是只读,Fire...

    js、css在IE和火狐上的差异和处理方法

    - **事件处理**:IE使用`attachEvent`来添加事件监听器,而Firefox使用`addEventListener`。移除事件监听器时,IE使用`detachEvent`,Firefox使用`removeEventListener`。 - **跨域请求**:IE7及更低版本有...

    IE与firefox在Javascript上的区别.doc

    - Firefox 支持 W3C 规范的 `addEventListener`,而 IE 更早版本使用的是 `attachEvent`。 - 为了确保兼容性,你需要根据浏览器类型分别使用这两种方法来添加事件监听器。 7. **其他差异** - 一些 JavaScript 的...

    Javascript的IE和Firefox兼容性问题集合

    1. **事件处理**:IE使用attachEvent方法添加事件监听器,而Firefox则使用addEventListener。为确保兼容,可以创建一个跨浏览器的事件处理函数,如: ```javascript function addEvent(element, event, handler) { ...

    Firefox IE兼容教程

    6. **IE专有属性和方法**:IE有一些特有的CSS属性和JavaScript方法,如`expression`和`behavior`,这些在Firefox中无效。为保持兼容性,应避免使用或提供替代方案。 7. **响应式设计**:当涉及到媒体查询和流式布局...

    Javascript在IE和FireFox中的不同表现

    因此,一些非标准的JScript特性可能在Firefox中不被支持。 - `window.attachEvent`是IE特有的事件绑定方式,而Firefox使用`addEventListener`。 2. **DOM操作差异**: - IE中的`innerHTML`属性可以用来设置或获取...

    IE FireFox 兼容问题

    - **事件处理**:IE使用`attachEvent`绑定事件监听器,而Firefox和其他现代浏览器则使用`addEventListener`。 - **DOM操作**:IE对于某些DOM属性和方法的支持较差,如`getElementsByClassName`在旧版IE中不可用,...

    difference between IE and Firefox

    - 在事件处理上,IE使用attachEvent,Firefox使用addEventListener,需要编写不同的事件绑定代码。 6. **错误处理**: - IE中的`try...catch`语句在捕获错误时可能会返回更少的详细信息,而Firefox通常提供更丰富...

    IE与Firefox的事件区别

    而在Firefox及支持DOM的浏览器中,使用`addEventListener`和`removeEventListener`方法,如下所示: ```javascript var obj = document.getElementById("id"); var fnClick = function() { alert("ss"); }; var ...

    self.attachevent is not a function的解决方法

    然而,`attachEvent`并不被其他浏览器如Chrome或Firefox支持。它们使用标准的`addEventListener`方法来添加事件监听器: ```javascript self.addEventListener("blur", function() { dd.style.display = "none"; }...

    attachEvent的使用方法与传递参数[IE|firefox]|angluo-javascript-37392.pdf

    与W3C标准的`addEventListener`不同,`attachEvent`并不支持事件捕获阶段,并且它的事件处理函数会在事件冒泡的过程中执行。 在`attachEvent`中,事件处理函数的执行上下文(即`this`的值)会指向调用`attachEvent`...

Global site tag (gtag.js) - Google Analytics