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的稳固记录
在你的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
替换它会发生什么,因为这是在这里发生的确切事情。
首先,我很惊讶你担心你的JavaScript会将错误推送到GA ......你似乎在很多链接上都有很多404错误代码。
第二次,我发现另一个JavaScript错误,我觉得这个答案值得:
尝试订阅电子邮件更新会在响应中显示未定义的变量(显然设置为函数参数中的数据):
msh.header.js:213 ReferenceError: Can't find variable: response