抱歉,这似乎很讨人喜欢……这应该就是为什么 firefox 没有像 Chrome 一样更改其代码以完全符合 Event 对象的原因。我已经完成了作业,尝试了 StackOverflow 上提供的几种解决方案,但似乎没有任何效果。我有这段代码:
function xpto(e) {
if( !e ) e = window.event;
var x = e.target||e.srcElement;
alert(x);
........
}
调用如下:
<svg id="graph-svg" onclick="xpto(event)" style="outline: none;" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
是的...这是我试图点击的 svg 元素。我没有放完整的代码,因为它与问题无关。归根结底,
alert(x)
总是在 Firefox 上用 undefined 提醒,在 Chrome 上工作就像一个魅力。我可以在 Firefox 上获取事件,但“x”总是未定义。
Firefox 中的 DOM 描述支持 Event 和 SVG。为了向后兼容,甚至使用“target”和“srcElement”属性定义事件。
我在 Ubuntu 上使用 Firefox 20...有人可以帮忙吗?
最佳答案
在收到 d'alar'cop 的回复后,我查看了代码,发现在 firefox 中有效的参数不是“event”或“Event”,而是“evt”……Firebug 中的控制台显示如下:
function onclick(evt) { xpto(event) }
因此我意识到处理程序是用“事件”而不是原始参数“evt”调用的。然后,当它落入处理程序时,“事件”变为“空”……未定义。
关于javascript - Firefox 上的事件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15857214/