Ошибка: Uncaught SyntaxError: Неожиданный токен - PullRequest
43 голосов
/ 02 сентября 2010

По какой-то причине я получаю это сообщение об ошибке:

Uncaught SyntaxError: Unexpected token <

Для этой строки кода:

title: '<img src="/images/text/text_mario_planet_jukebox.png" id="text_mario_planet_jukebox"/>',

В этом контексте:

$(document).ready(function() {
    $('#infobutton').click(function() {
        $('#music_descrip').dialog('open');
    });
        $('#music_descrip').dialog({
            title: '<img src="/images/text/text_mario_planet_jukebox.png" id="text_mario_planet_jukebox"/>',
            autoOpen: false,
            height: 375,
            width: 500,
            modal: true,
            resizable: false,
            buttons: {
                'Without Music': function() {
                    $(this).dialog('close');
                    $.cookie('autoPlay', 'no', { expires: 365 * 10 });
                },
                'With Music': function() {
                    $(this).dialog('close');
                    $.cookie('autoPlay', 'yes', { expires: 365 * 10 });
                }
            }
        });
    });

Я думаю, что все должно быть хорошо, но я не понимаю, почему < как-то это отбрасывает ..

упс, забыл показать, где это происходит! Мой плохой,

http://www.marioplanet.com/index.asp

Есть идеи?

Ответы [ 9 ]

40 голосов
/ 02 сентября 2010

Это проблема браузера, а не проблема javascript или JQuery; он пытается интерпретировать угловую скобку как тег HTML.

Попробуйте сделать это при настройке javascripts:

<script>
//<![CDATA[

    // insert teh codez

//]]>
</script>

Кроме того, вы можете переместить ваш JavaScript в отдельный файл.

Редактировать: Ааа ... с этой ссылкой я отследил ее. То, что я сказал, было проблемой не проблема вообще. это - проблема, удаленная с сайта:

<script type="text/javascript"
    $(document).ready(function() {
    $('#infobutton').click(function() {
        $('#music_descrip').dialog('open');
    });
        $('#music_descrip').dialog({
            title: '<img src="/images/text/text_mario_planet_jukebox.png" id="text_mario_planet_jukebox"/>',
            autoOpen: false,
            height: 375,
            width: 500,
            modal: true,
            resizable: false,
            buttons: {
                'Without Music': function() {
                    $(this).dialog('close');
                    $.cookie('autoPlay', 'no', { expires: 365 * 10 });
                },
                'With Music': function() {
                    $(this).dialog('close');
                    $.cookie('autoPlay', 'yes', { expires: 365 * 10 });
                }
            }
        });
    });

Можете ли вы определить ошибку? Это в первой строке: тег <script не закрыт. Так должно быть <script type="text/javascript">

Однако мое предыдущее предложение остается в силе: вы должны заключить внутри теговые скрипты в блок CDATA или переместить их в отдельно связанный файл.

Это не было проблемой здесь, но это показало бы реальную проблему быстрее.

11 голосов
/ 27 июня 2014

Я тоже получил эту ошибку при разработке приложения Backbone с использованием push-состояния HTML5 в сочетании с .htaccess, который перенаправляет все неизвестные файлы в index.html.

Оказывается, что при посещении URL-адреса, такого как/something/5, мой /index.html фактически обслуживался на /something/index.html (благодаря моему .htaccess).Это привело к тому, что все относительные URL-адреса к моим файлам JavaScript (изнутри index.html) были повреждены, что означало, что они должны иметь 404 на меня.

Однако, опять же, из-за моего htaccess, вместоиз 404 'при попытке получить JS-файлы они вместо этого вернули мой index.html.Таким образом, браузеру был предоставлен index.html для каждого файла JavaScript, который он пытался вставить, и когда он оценивал HTML, как если бы он был JavaScript, он возвращал ошибку JS из-за ведущего <(из моего тега в index.html). </p>

Исправление в моем случае (когда я обслуживал сайт из подкаталога) заключалось в добавлении базового тега в мою HTML-заголовок.

<base href="/my-app/">

9 голосов
/ 05 марта 2013

У меня был точно такой же симптом, и это была моя проблема, очень сложно ее отследить, поэтому я надеюсь, что это кому-нибудь поможет.

Я использовал JQuery parseJSON(), и контент, который я пытался проанализировать, на самом деле был не JSON, а возвращаемой страницей с ошибкой.

7 голосов
/ 19 августа 2016

Обычно это происходит, когда вы пытаетесь загрузить не-HTML-ресурс (например, файл сценария библиотеки jquery в виде типа text / javascript), а сервер вместо возврата ожидаемого ресурса JS вместо этого возвращает HTML - обычно страницу 404..

Затем браузер пытается проанализировать ресурс как JS, но поскольку на самом деле была возвращена HTML-страница, синтаксический анализ завершается ошибкой, и HTML-страница обычно начинается с символа <,этот символ выделяется в исключении синтаксической ошибки. </p>

1 голос
/ 25 апреля 2018

Попробовав несколько решений, у меня получилось:

  1. Перейти к IIS Manager
  2. Открыть сайт
  3. Нажмите Аутентификация
  4. Редактирование анонимной аутентификации.
  5. Выберите «Идентификация пула приложений»

пример

0 голосов
/ 05 июля 2017

попробуйте заменить текст / javascript на text / html, затем сохраните заметку и перезагрузите браузер, а затем верните ее обратно в текст / javascript .. Я не знаю, но по неизвестной причине этот работает со мной .. Я ищуи копирование-вставка, и я просто случайно отменил то, что я печатаю, тогда бум kablooey это работало 0.O кстати я просто noob .. извините, я просто думал, что это может помочь, хотя ..

0 голосов
/ 21 июня 2017

Если вы сталкиваетесь с этой проблемой только в Chrome и в IE, например, все в порядке, то просто включите флажок " Отключить кэш " в Dev Tools (F12 -> вкладка "Сеть") и снимите флажокистория за последний час.

У меня была эта проблема, и вышеупомянутое решение сработало для меня.

0 голосов
/ 05 ноября 2012

Обычно работает, когда вы меняете имя каталога, где находится файл. Это сработало для меня, когда я переместил его из "js /" в "../js"

0 голосов
/ 20 августа 2011

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

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

После того, как я связал все файлы с корневым каталогом сервера, проблема решена.

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