有没有办法,使用原型或其他方式,让事件将自己复制到全局空间(window.event
)?
我的问题是我使用的远程脚本不会将事件对象传递给我的回调。Chrome 和 IE 始终可以访问event
和 event window.event
,但 FireFox 两者都没有,除非明确传递(和设置),所以我想知道是否有办法将事件对象原型化为将自身复制到全局空间中。
有没有办法,使用原型或其他方式,让事件将自己复制到全局空间(window.event
)?
我的问题是我使用的远程脚本不会将事件对象传递给我的回调。Chrome 和 IE 始终可以访问event
和 event window.event
,但 FireFox 两者都没有,除非明确传递(和设置),所以我想知道是否有办法将事件对象原型化为将自身复制到全局空间中。
您可以通过执行以下操作直接将事件侦听器附加到窗口对象:
window.addEventListener('click', function (e) {
// here's where something useful happens...
alert(e);
}, false);
有关事件冒泡的信息,请参阅这篇好文章。 什么是事件冒泡和捕获? 希望有帮助。
安迪
在我的特殊情况下,以下行event
正确获取 FireFox 中的对象:
var event = event || window.event || arguments.callee.caller.arguments[0];
我去挖掘并在那里找到了它。对于处于类似情况但不适用的任何人,请查看整个arguments.callee.caller.arguments
数组,如果不存在,请参阅 Andy 的答案,您可以在其中设置对象window.event
或任何其他全局变量event
。无论如何,这应该有效。