Javascript 无法复制TypeError:';未定义';它不是一个对象

Javascript 无法复制TypeError:';未定义';它不是一个对象,javascript,jquery,iphone,safari,Javascript,Jquery,Iphone,Safari,Google Analytics显示,约12%的用户受到以下Javascript错误的影响: TypeError:“未定义”不是对象 90%的浏览器是Safari7534.48.3,10%是Mozilla兼容代理。75%的错误来自iPhone,23%来自iPad。1%来自Macintosh,另外2%来自iPod等。所有设备都不运行Linux或Windows 我曾在iPhone和iPad上尝试在safari中启用调试模式,但无法重现错误 。如果有人能在这里始终如一地重现错误,我会非常高兴,因为只要

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

TypeError:“未定义”不是对象

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

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

。如果有人能在这里始终如一地重现错误,我会非常高兴,因为只要一个行号就足以让我开始调试

有人能想出其他方法来调试这个吗?谢谢大家

对于我们当中好奇的人,我使用了——警告:可能的自我提升

更新:TypeError:“未定义”不是对象(正在评估“safari.self.tab.canLoad”)

当你点击周围的时候,大多数情况下是在iphone上点击“改变国家…”时,都能从中摆脱出来

更新:通过确保元素在dom中可用,解决了这个问题。结果表明,成功时的ajax调用试图写入一个不可用的元素


我在你的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关键字。这是一个(大多数情况下)未定义的变量。不能像这样使用
未定义的
。考虑一下如果你把它替换为<代码> Pik象会发生什么,因为这正是这里发生的事情。

首先,我很惊讶你担心你的JavaScript将错误推给GA.。在许多链接上,您似乎有相当多的404错误代码

其次,我发现了另一个JavaScript错误,我认为这是一个值得回答的问题:

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


那么,出现错误的文件和行是什么?您的代码也会将其发送到GA。未定义:0..:(-我想到了巧克力茶壶…@johnmlear:如果你找到了答案,我认为你最好把它作为一个答案发布并批准它(这是允许的),而不是简单地更新你的问题,因为它看起来仍然处于活动状态(未回答)当它没有被回答时。@johnmlear:在写这篇评论时,你最后一次被看到是在3个小时前。那么你能按照上面的建议去做吗?你可以回答自己,把这个问题标记为已被回答吗?这很奇怪,我没有看到functions.js…functions.js对你来说是什么来源?比如它是来自cloudflare、google还是google共享这个?使用
pinkelephant
会抛出一个引用错误,使用
undefined
不会,只会返回
undefined
值。另外,我很确定你正在查看Chrome AdBlock扩展的代码:)哈哈,这是一个很好的观点:)嗯,这是我能找到的唯一一个
undefined
。。。也许这就是他的问题的答案——浏览器扩展有bug?你不仅仅用pinkelephant替换undefined,你还声明了一个名为pinkelephant的未定义变量,比如“var pinkelephant;”,然后你可以执行“return pinkelephant”,而不是执行“return undefined;”,这似乎不正确。据英国《每日邮报》报道,所有主流浏览器都支持“未定义”这一概念。
msh.header.js:213 ReferenceError: Can't find variable: response