本文讨论如何让firefox像IE浏览器那样,不需要传递event对象到函数中,而是在函数体中直接使用window.event获取到事件对象。 javascript里有两种获取事件对象的办法。一种是访问window.event属性,另一种便是事件函数的第一个参数。 IE里只支持window.event,Firefox只支持参数的形式,而其他主流浏览器两者都支持。所以平时为了兼容FF,一般都写成: -收缩JavaScript代码 function handle(e) { e = e || event; //... } 虽然这样大多数情况下能运行,但是对于内嵌的调用就有问题了。比如<img onclick="handle()" />,虽然我们可以把arguments[0]当做参数传递过去,但很多情况下这里都是this,因为handle可能绑定了多个元素。虽然也有解 决的办法,但终究麻烦了,不如给Firefox做一个一劳永逸的办法:给他的window添加一个event的属性(Getter): -收缩JavaScript代码 if(/*is ff的判断条件*/) { var $E = function(){var c=$E.caller; while(c.caller)c=c.caller; return c.arguments[0]}; __defineGetter__("event", $E); } 每当Firefox访问到event属性,就会顺着调用栈访问到最顶层的函数,即捕捉事件的那个函数,该函数的第一个参数即是事件对象。这样,所有的浏览器都可以用event属性,无需e=e||event那样的代码了。 来源:http://www.cnblogs.com/index-html/archive/2011/03/03/firfox_event_obj.html
相关推荐
然而,Firefox并不支持`window.event`,而是将事件对象作为事件处理函数的第一个参数传递。 为了在Firefox中获取事件对象,开发者通常需要像这样编写事件处理函数: ```javascript btn.onclick = handle_btn_click...
window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用。Firefox必须从源处加入event作参数传递。IE忽略该参数,用window.event来读取该event。解决方法是if(typeof...
在IE中,可以通过`window.event`来访问事件对象,而在Firefox等现代浏览器中,则需要通过参数传递或者`event`全局变量来获取事件对象。为了编写兼容的事件处理代码,应当检查是否存在事件对象参数,如果不存在,则...
火狐浏览器不支持window.event的解决办法,解决不同浏览器针对window.event的差异
在Firefox中,事件对象是作为事件处理函数的第一个参数传递进来的。因此,如果尝试在Firefox中访问`window.event`,将会得到`undefined`的结果。 为了在Firefox中也能通过`window.event`来访问事件对象,可以采用...
在Firefox和IE中,获取父元素的方法也有所不同: - **Firefox**: 使用`element.parentNode`。 - **IE**: 使用`element.parentElement`。 为了兼容这两种情况,可以使用以下代码: ```javascript var ...
Firefox 不支持 click 方法的解决 Firefox 不支持 click 方法是因为 W3C 标准规定 click 方法只能赋予 input 元素。这意味着在 Firefox 浏览器中,不能使用 click 方法来触发非 input 元素的点击事件。 解决方法是...
Deepin Linux 安装最新版 Firefox火狐浏览器详解 在 Deepin Linux 操作系统中,安装最新版的 Firefox 火狐浏览器可以通过下载最新版的 Firefox 压缩包并解压缩来实现。下面是详细的安装步骤: 首先,用户需要在 ...
然而,在IE的老版本中,`event`对象是全局的,可以直接在事件处理函数中使用,无需作为参数传递。 在文件上传的例子中,我们通常会用到`<input type="file">`元素,允许用户选择本地文件进行上传。在处理文件选择...
- **Firefox**:在Firefox中,`window.event`不可用。取而代之的是,可以通过以下两种方式获取`event`对象: - 在HTML页面中直接传递`event`参数给事件处理函数。 - 使用`arguments.callee.caller.arguments[0]`来...
本文主要讨论在Firefox(火狐)和IE浏览器中如何获取`event`对象及其`keyCode`属性,这对于处理键盘输入事件至关重要。 首先,让我们了解`event`对象。在JavaScript中,`event`对象是事件处理器函数的参数,它包含...
标题“火狐兼容获取鼠标的坐标”涉及到的是在网页开发中如何在Firefox浏览器上获取鼠标指针的位置。在Web开发中,特别是在JavaScript编程中,获取鼠标坐标是一项常见的需求,用于实现各种交互效果,如拖放功能、点击...
但在Firefox中,必须在事件处理函数中显式传递`event`参数,才能访问Event对象。 2. **方法二:利用`arguments`对象获取** 这种方法通过`arguments`对象来获取Event对象,`arguments`对象包含了函数调用时的所有...
- **`eval()`与`getElementById()`**:在IE中,可以使用`eval()`函数来动态获取具有特定ID的元素,但这种方法在Firefox中不推荐使用,应当优先选择`getElementById()`。 #### 6. 多个相同ID的元素 - **IE与Firefox...
- IE使用全局的`event`对象,Firefox则将`event`作为事件处理函数的参数传递。可以使用`arguments[0]`作为兼容方式。 6. **event对象的坐标问题** - IE使用`event.clientX`和`event.clientY`,Firefox使用`event....
然而,Firefox在早期版本中对`event`的全局作用域支持并不完全,不像其他一些浏览器(如Chrome、Safari和IE),它们允许在没有明确参数的情况下直接在事件处理函数内部使用`event`。这可能导致在Firefox中编写的一些...
兼容IE和FireFox的event(事件)的对象获得,直接下载引用即可
解决办法是在事件处理函数中传递事件对象,如`onclick="gotoSubmit(event)"`,然后在函数内部使用`evt = evt || (window.event ? window.event : null);`来兼容IE和Firefox。 4. **HTML对象的id作为对象名的问题** ...
可以创建一个函数如`getEvent`来获取事件对象,并在处理函数中传递事件。 5. 获取HTML元素: - IE支持`document.all.month.value`,但Firefox要求使用`document.getElementsByName("month")[0].value`或`document....