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