Загадочная ошибка JavaScript в Internet Explorer 7/8: ':' ожидается - PullRequest
3 голосов
/ 24 января 2012

На одном из наших сайтов мы получаем очень загадочную ошибку JS из Internet Explorer.В консоли написано:

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

Когда я нажимаю на ошибку, чтобы увидеть, какая JS вызывает ошибку, появляется сообщение: «Для этой ошибки источник недоступен».Поэтому я действительно не могу сказать вам, откуда это.

Это очень загадочно для меня.Кто-нибудь знает, что может быть причиной этого?

Ответы [ 4 ]

4 голосов
/ 24 января 2012

Возможно, это неверный литерал объекта .Например:

var foo = {bar};

... дает именно ту ошибку, которую вы описываете в IE 7 и 8.

1 голос
/ 24 января 2012

Места, где можно ожидать двоеточие:

  1. Объектный литерал, например var obj = {foo: bar};
  2. Тернарный оператор, например var str = (i === 0 ? "yes" : "no");
  3. Оператор переключения регистра

Это может помочь вам сузить кругозор. Тем не менее, я подозреваю, что, как вы, похоже, указываете, что проблема только в IE, что происходит из-за автоматической вставки точек с запятой . Для этого я запускаю сценарии через JSLint , чтобы помочь найти и исправить неоднозначности.

1 голос
/ 24 января 2012

По-видимому, уродливый объектный литерал.Что-то вроде { foo bar }, которое должно быть { foo: bar }.

0 голосов
/ 24 января 2012

Я действительно могу думать только об одном месте, где двоеточие используется в Javascript, и это троичные операторы .(Правка: Да, есть и объектные литералы, спасибо другим авторам)

Так что, возможно, у вас есть строка, которая выглядит так, как будто это троичная операция, но без двоеточия?Эта гипотеза несколько подтверждается разговором в сообщении об ошибке «ложь», поскольку часть после двоеточия представляет ложное действие.

Вид такой же ошибки с этим jsfiddle: http://jsfiddle.net/CNTY8/

Ожидаемый ':'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...