无法重现TypeError:'undefined'不是对象

问题描述 投票:10回答:2

Google Analytics(分析)显示,约有12%的用户受到以下Javascript错误的影响:

TypeError: 'undefined' is not an object

90%的浏览器是Safari 7534.48.3,10%是Mozilla兼容代理。 75%的错误来自iPhone,23%来自iPad。 1%来自Macintosh,另外2%来自iPod等。所有设备都没有运行Linux或Windows。

我已尝试在iPhone和iPad上的safari中启用调试模式,但无法重现该错误。

Here is a link to a page Google Analytics claims is showing the error。如果有人能够在这里始终如一地重现错误,我将非常高兴,因为只需一个行号就足以让我开始调试。

任何人都可以想到我可以尝试调试此方法吗?谢谢大家

对于我们中间的好奇我正在使用this code to send errors to GA - 警告:可能的自我推销。

更新:TypeError:'undefined'不是对象(评估'safari.self.tab.canLoad')

当点击“改变国家......”时,主要在iphone上进行管理以便一次点击它。

更新:通过确保元素在dom中可用来解决此问题。事实证明,成功时的ajax调用试图写入一个不可用的元素。

我保持了Unable to reproduce TypeError: 'undefined' is not an object here的稳固记录

javascript jquery iphone safari
2个回答
0
投票

在你的functions.js中,你有这个:

storage_get = function(key) {
  var store = (window.SAFARI ? safari.extension.settings : localStorage);
  var json = store.getItem(key);
  if (json == null)
    return undefined;
  try {
    return JSON.parse(json);
  } catch (e) {
    log("Couldn't parse json for " + key);
    return undefined;
  }
}

undefined不是JavaScript关键字。这是一个变量(大部分时间)恰好是未定义的。你不能像这样使用undefined。考虑如果用pinkelephant替换它会发生什么,因为这是在这里发生的确切事情。


-3
投票

首先,我很惊讶你担心你的JavaScript会将错误推送到GA ......你似乎在很多链接上都有很多404错误代码。

第二次,我发现另一个JavaScript错误,我觉得这个答案值得:

尝试订阅电子邮件更新会在响应中显示未定义的变量(显然设置为函数参数中的数据):

msh.header.js:213 ReferenceError: Can't find variable: response
© www.soinside.com 2019 - 2024. All rights reserved.