window.event无法在Firefox中运行

时间:2014-08-22 10:33:23

标签: typescript

我在使用Firefox的window.event时遇到了麻烦 - 它在chrome中运行得很好。这是我的代码:

private myFunction(event:any) {
   if(window.event.target.outerHTML.indexOf('point') > -1){
    return;
};  

错误是:

  

window.event未定义

我已经查看了一些类似的问题,并尝试了以下哪些方法无效:

private myFunction(event:any) {
    var e = event || window.event;
    if(e.target.outerHTML.indexOf('point') > -1){
        return;
    };  
}

1 个答案:

答案 0 :(得分:0)

这取决于您如何将事件附加到dom元素。您不能依赖回调中的事件参数,因为旧浏览器(< = IE8)在执行此操作时存在一些差异,此外,您已经发现Firefox的工作方式也略有不同。

您可以在此处阅读有关正确的dom事件附件的内容 https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener 还有一个例子来实现对IE8的支持,这不是太糟糕。

但总的来说,我建议使用某种为你做事件处理的库。 因为这非常复杂并且很容易出错,所以这些库非常有用(不仅仅是在这方面)......

第一个选项是JQuery,但还有很多其他的JavaScript库。当然,您可以在Typescript中使用它们并下载相应的输入法。

@see http://api.jquery.com/on/http://api.jquery.com/off/