Internet Explorer 7/8:'中的密码javascript错误:'预期

Cryptic javascript error in Internet Explorer 7/8: ':' expected

本文关键字:密码 javascript 错误 预期 Internet Explorer      更新时间:2023-09-26

在我们的一个网站上,我们从Internet Explorer中收到了一个非常神秘的JS错误。控制台上写着:

':' expected
javascript:false, Line 1 Character 24

当我点击错误来查看是哪个JS导致了错误时,会弹出一条消息:"对于这个错误,没有可用的来源"。所以我真的不能告诉你这是从哪里来的。

这对我来说非常神秘。有人知道是什么原因造成的吗?

这可能来自不正确的对象文字。例如:

var foo = {bar};

给出了您在IE 7和8中描述的错误。

猜测是一个格式错误的对象文字。类似{ foo bar }的东西,它应该是{ foo: bar }

它期望冒号的位置是:

  1. 对象文字,例如var obj = {foo: bar};
  2. 三元运算符,例如var str = (i === 0 ? "yes" : "no");
  3. 交换机案例说明

这可以帮助你缩小范围。然而,我怀疑,由于你似乎表明问题只出现在IE中,这是由于自动插入分号造成的。为此,我将通过JSLint运行脚本,以帮助查找和纠正歧义。

我只能真正想到在Javascript中使用冒号的一个地方,那就是三元运算符。(编辑:是的,也有实物文字,谢谢其他海报)

那么,你有没有可能有一行看起来应该是三元运算,但缺少冒号?这一假设在一定程度上得到了错误消息中"false"的说法的支持,因为冒号后面的部分表示错误动作。

这个jsfiddle也出现了同样的错误:http://jsfiddle.net/CNTY8/

应为":"