Расширение Google Chrome Javascript Неожиданный токен Недопустимый - PullRequest
1 голос
/ 15 октября 2010

Это может показаться знакомым, но я ничего не могу найти по этому поводу ... уверен, что я нашел материал о "Неожиданном незаконном маркере", но эти обстоятельства недостаточно связаны для того, чтобы эти решения имели смысл.

У меня есть фоновая страница , вот так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Background Page</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="background.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>

</body>
</html>

Небольшая часть w3-совместимой разметки, но именно здесь возникает ошибка "Неожиданный токен НЕЗАКОНЕН",в строке 1. Если я добавляю пустую строку вверху, она по-прежнему выдает ошибку в строке 1.

В моем Javascript я вызываю три функции инициализации:

localData.init();
localRead.init();
getTitles();

Если япрокомментируйте все три эти функции (не меньше), ошибка исчезнет.Я трижды проверил остальную часть своего кода и не вижу ничего неправильного, синтаксического или логического.

Я совершенно тупик ... Я программирую на Javascript уже много лет, и все же он все еще находит странностибросить в меня.

Ответы [ 5 ]

1 голос
/ 04 марта 2011

Я знаю, что это месяцы, но у меня только что была точная такая же проблема с расширением, и это убивало меня, когда я пытался исправить это как можно быстрее. Я пытался возиться с кодировкой, заменяя все переводы строк и т. Д., Пока не запустил window.location.reload() в консоли Chrome. На этот раз вместо возврата ссылки на начало HTML-файла отладчик указал на строку во внешнем JavaScript-файле. Weird!

Суть в том, что в старой версии расширения текстовое значение сохранялось без использования JSON.stringify. Таким образом, при попытке JSON.parse этого значения все не удалось. Вот как это выглядит в консоли:

> localStorage.good = JSON.stringify("good");
  localStorage.bad = "bad";
  console.log(JSON.parse(localStorage.good));
  console.log(JSON.parse(localStorage.bad));
> good
> SyntaxError: Unexpected token ILLEGAL

Если это происходит во время загрузки страницы, страница не будет отображаться после объявления <!doctype>. На самом деле это так, но это зависает. Eeevil.

0 голосов
/ 18 декабря 2012

На всякий случай, если кто-нибудь еще наткнется на этот вопрос, у меня есть другой пример ошибки Uncaught SyntaxError: Неожиданный токен ILLEGAL .Для меня это появилось в prototype.js, так как Prototype попытался оценить скрипты в моей разметке после завершения вызова AJAX.

Проблема в моем случае заключалась в том, что у меня был простой блок:

<script>
</script>

Он казался пустым, потому что он был сгенерирован динамически, и у меня не было большой логики для обработкиситуация, когда блок был бы пустым.

По какой-то причине парсер Chrome зависает на блоке скрипта, в котором находится только символ \ n новой строки.

0 голосов
/ 15 октября 2010

Я понял, что это было: я использовал функцию localStorage и первоначально использовал мою функцию обновления для ее инициализации, хотя, как только функция обновления требовала, чтобы она была предварительно определена, эта ошибка произошла ... в конце концов,кажется, я передавал ноль в JSON.parse, который как-то не работает.

0 голосов
/ 17 октября 2010

Что говорит JSLint , если вы запускаете свой код поверх него?

0 голосов
/ 15 октября 2010

Я часто получаю эту ошибку, когда я включаю файл, который не существует. Вы проверяли, что jquery.js и background.js действительно присутствуют?

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