Подтвердить что ты не робот

Ошибка: нечистить SyntaxError: Неожиданный токен <

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

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

Любые идеи?

4b9b3361

Ответ 1

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

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

<script>
//<![CDATA[

    // insert teh codez

//]]>
</script>

В качестве альтернативы переместите свой javascript в отдельный файл.

Изменить: Ahh.. с той ссылкой, которую я отслеживал. То, что я сказал, было проблемой не совсем. это проблема, снятая с веб-сайта:

<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 или переместить их в отдельно связанный файл.

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

Ответ 2

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

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

Ответ 3

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

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

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

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

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

Если вы столкнулись с этой проблемой только в Chrome и в IE, например, все в порядке, тогда просто включите checkbutton " Отключить кеш" в разделе "Инструменты" (F12 → "Сеть" ) и очистить историю за последний час.

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

Ответ 7

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

Ответ 8

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

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

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