第一种方法,就是通过修改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);
}
分享到:
相关推荐
6. **CSS3属性**:如渐变、阴影、圆角等在IE6和Firefox早期版本中不支持,需要使用图片或者渐进增强的方式来实现。 7. **PNG透明度**:IE6不支持PNG24位的透明,需要使用`AlphaImageLoader`滤镜解决。 8. **事件...
- IE支持`document.all`来获取所有元素,Firefox则不支持。应优先使用`document.getElementById`或`querySelector`等标准方法。 4. **input的type属性问题** - 不同浏览器对某些HTML5新类型的输入框支持不同,如`...
获取DOM元素的属性值时,IE支持直接使用属性名来获取,而Firefox只支持通过`getAttribute()`方法获取。为了提高代码的兼容性,建议统一使用`getAttribute()`方法来获取属性值。 ```javascript // IE var value = ...
在网页开发过程中,Firefox(火狐浏览器)和Internet Explorer(IE浏览器)的兼容性问题一直是一大挑战。这两个浏览器在解析HTML、CSS以及JavaScript时有着不同的实现方式,导致某些代码在Firefox下正常运行,但在IE...
查看博文链接(https://helius1214.iteye.com/blog/633807)可能提供更具体的解决方案和讨论,因为这个链接指向一个IT社区的博客文章,其中可能包含了关于Firefox 3中`onreadystatechange`事件问题的深入分析和修复...
例如,IE较早版本(如IE6、7)不支持ES5的一些新特性,如数组的forEach方法或对象的getter和setter属性,而Firefox则较早地实现了这些标准。开发者在编写跨浏览器的代码时,需要考虑这些差异,或者使用像jQuery这样...
本文将深入探讨如何创建一个兼容Internet Explorer(IE)和Firefox浏览器的事件模型,特别是在实现拖动功能时所面临的挑战和解决方案。 首先,我们需要理解IE和Firefox在事件处理上的差异。在IE中,事件处理主要...
- `innerHTML`和`innerText`:IE支持`innerText`,Firefox支持`textContent`,使用时需要考虑兼容性。 解决这些问题通常需要编写条件语句,使用库(如jQuery)或适配器模式来封装差异。理解这些兼容性问题并采取...
标题提到的“梅花雨日历控件3.0(修改支持Firefox)”表明原版的3.0版本在Firefox浏览器上存在兼容性问题,因此进行了相应的修复和优化,使其能够在Firefox环境下正常运行。 在Web开发中,跨浏览器兼容性是一个常见的...
- **常量定义**:Firefox 支持 `const` 和 `var` 定义常量,而 IE 只支持 `var`。为保持一致,应统一使用 `var` 关键字定义常量。 7. **input.type 属性** - **属性可读写性**:IE 中 `input.type` 是只读,Fire...
- **事件处理**:IE使用`attachEvent`来添加事件监听器,而Firefox使用`addEventListener`。移除事件监听器时,IE使用`detachEvent`,Firefox使用`removeEventListener`。 - **跨域请求**:IE7及更低版本有...
- Firefox 支持 W3C 规范的 `addEventListener`,而 IE 更早版本使用的是 `attachEvent`。 - 为了确保兼容性,你需要根据浏览器类型分别使用这两种方法来添加事件监听器。 7. **其他差异** - 一些 JavaScript 的...
1. **事件处理**:IE使用attachEvent方法添加事件监听器,而Firefox则使用addEventListener。为确保兼容,可以创建一个跨浏览器的事件处理函数,如: ```javascript function addEvent(element, event, handler) { ...
6. **IE专有属性和方法**:IE有一些特有的CSS属性和JavaScript方法,如`expression`和`behavior`,这些在Firefox中无效。为保持兼容性,应避免使用或提供替代方案。 7. **响应式设计**:当涉及到媒体查询和流式布局...
因此,一些非标准的JScript特性可能在Firefox中不被支持。 - `window.attachEvent`是IE特有的事件绑定方式,而Firefox使用`addEventListener`。 2. **DOM操作差异**: - IE中的`innerHTML`属性可以用来设置或获取...
- **事件处理**:IE使用`attachEvent`绑定事件监听器,而Firefox和其他现代浏览器则使用`addEventListener`。 - **DOM操作**:IE对于某些DOM属性和方法的支持较差,如`getElementsByClassName`在旧版IE中不可用,...
- 在事件处理上,IE使用attachEvent,Firefox使用addEventListener,需要编写不同的事件绑定代码。 6. **错误处理**: - IE中的`try...catch`语句在捕获错误时可能会返回更少的详细信息,而Firefox通常提供更丰富...
而在Firefox及支持DOM的浏览器中,使用`addEventListener`和`removeEventListener`方法,如下所示: ```javascript var obj = document.getElementById("id"); var fnClick = function() { alert("ss"); }; var ...
然而,`attachEvent`并不被其他浏览器如Chrome或Firefox支持。它们使用标准的`addEventListener`方法来添加事件监听器: ```javascript self.addEventListener("blur", function() { dd.style.display = "none"; }...
与W3C标准的`addEventListener`不同,`attachEvent`并不支持事件捕获阶段,并且它的事件处理函数会在事件冒泡的过程中执行。 在`attachEvent`中,事件处理函数的执行上下文(即`this`的值)会指向调用`attachEvent`...