1

我正在使用 Lungo 框架。我试图了解我的代码中是否存在错误或框架中是否存在错误,因为我想“在责备他人之前先责备我的代码”。这行代码在 Firefox 26.0 中引发了以下错误——但在 Chrome 31.0.1650.63 中没有:

 _sameSection = function () {
     var dispacher_section, same;
     if (!event || !lng.Element.Cache.section) {  //event is not defined
         return true; 
     }

我知道事件不是 javascript 中的保留字(“事件”是 JavaScript 中的保留字吗?)——但它是 IE 中的全局变量。它也是 Chrome 上的保留字吗?因为我在 Chrome 上没有收到此错误。

如果我回顾代码,我会发现事件没有定义为这个函数范围之外的变量。因此,这似乎与不同浏览器如何处理“事件”一词有关。

4

1 回答 1

0

考虑使用显式检查而不是隐式检查:

typeof(window.event) === "undefined"

不同的浏览器对其他浏览器的特殊情况有不同的行为(这就是为什么像 jQuery 这样的库更容易 - 许多一次性情况已经在库中处理)。

于 2013-12-28T19:07:01.753 回答