在我们的某个网站上,我们从Internet Explorer中收到了一个非常神秘的JS错误。在控制台,它说:Internet Explorer 7/8中的隐藏JavaScript错误:':'预计
':' expected
javascript:false, Line 1 Character 24
当我在错误点击查看该JS导致错误弹出一条消息:“对于这个错误没有源可用”。所以我真的不能告诉你这是从哪里来的。
这对我来说非常神秘。有谁知道什么可能导致这种情况?
在我们的某个网站上,我们从Internet Explorer中收到了一个非常神秘的JS错误。在控制台,它说:Internet Explorer 7/8中的隐藏JavaScript错误:':'预计
':' expected
javascript:false, Line 1 Character 24
当我在错误点击查看该JS导致错误弹出一条消息:“对于这个错误没有源可用”。所以我真的不能告诉你这是从哪里来的。
这对我来说非常神秘。有谁知道什么可能导致这种情况?
我只能真正想到在Javascript中使用冒号的地方,那就是ternary operators。 (编辑:是的,也有对象字面量,谢谢其他海报)
所以有可能你有一条线看起来应该是三元操作符,但缺少冒号?这个假设在“错误”的错误信息中有所支持,因为冒号之后的部分代表错误行为。
的种类得到了与此的jsfiddle了同样的错误:http://jsfiddle.net/CNTY8/
预期 ':'
它们也用于字面对象符号和标签。 – Gumbo
在猜测,格式错误的对象字面。像{ foo bar }
这应该是{ foo: bar }
。
的地方是:
var obj = {foo: bar};
var str = (i === 0 ? "yes" : "no");
,可以帮助你缩小范围。但是,我怀疑,因为你似乎表明,问题是只在IE浏览器,这是由于automatic semicolon insertion。为此,我会通过JSLint运行脚本以帮助查找和纠正歧义。
感谢大家。这是一个对象字面值,但是由于JSLint,我发现缺少一个分号。 –
你说得对,我在网站上添加了一些AddThis代码:{title}:{url}并且导致了问题。非常感谢! –