Google Chrome: сообщение об ошибке JavaScript

При использовании Google Chrome я получаю следующее сообщение об ошибке:

Ошибка:

Uncaught SyntaxError: Unexpected token <

Это происходит сразу после моего объявления типа документа вверху моей HTML-страницы.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

Есть идеи, что это за сообщение об ошибке JavaScript? Это происходит только с Google Chrome (отлично работает в Safari, Firfox и IE)

Можете ли вы произвести небольшое сокращение? Если да, отправьте отчет об ошибке в crbug.com/new и дайте мне знать номер ошибки, чтобы я мог отправить его соответствующим людям.

Mohamed Mansour 02.02.2010 04:08
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
17
1
24 453
10

Ответы 10

Может быть, тип содержимого HTTP не text/html или application/xhtml+xml?

Я бы определил тип содержимого HTTP?

TeddyR_ 26.12.2008 10:13

Я нашел этот вопрос групп Google.

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

http://www.google.com/support/forum/p/Chrome/thread?tid=7e9f87870a37e401&hl=en

Попробуйте изменить порядок объявлений css и js. Работал у меня.

Эта проблема возникла у меня, когда я использовал JQuery для загрузки HTML из XMLHTTPRequest, который был HTML, но тип mime был text / javascript.

Так, например, у меня был такой код, как:

jQuery.ajax({
    data:'params=here',
    success:function(request) {
        jQuery('#country_list_container').html(request);
    },
    type:'get',
    url:'/getHtml'
});

jQuery отправляет запрос к getHtml, а getHtml возвращает простой фрагмент HTML с mime / type, но "text/javascript". Причина, по которой действие getHtml возвращало text/javascript, заключается в том, что заголовок accept запроса от jQuery:

"Accept:text/javascript, text/html, application/xml, text/xml, */*"

Итак, все, что мне нужно было сделать, это принудительно создать заголовок text/html, и все сработало отлично.

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

Можете ли вы предоставить пример кода, отредактированного с принудительным изменением заголовка?

admintech 28.03.2011 12:48

Думаю, вы имеете в виду именно этот header('Content-Type: text/html; charset=utf-8');

Owl 24.06.2013 11:03

У меня возникла эта проблема, когда я пытался настроить .innerHTML, динамически сгенерированный с помощью php (он был сгенерирован многострочным).

Замена символов новой строки пробелами решила проблему.

В моем случае это было вызвано прерыванием оператора eval(). Когда я исправил проблему, сообщение об ошибке исчезло.

В настоящее время (июнь 2010 г.) в Chrome Javascript есть некорректная инструкция eval(). eval() будет прерван без выдачи сообщения об ошибке, если переменной в операторе eval() было присвоено зарезервированное слово «delete». На обнаружение этой ошибки у меня ушла почти неделя, потому что eval() прерывается без каких-либо предупреждений или сообщений об ошибке, а прерывание имеет неприятные побочные эффекты.

Я использовал eval() для достижения этого результата: obj.delete = somevalue.

Этот код вызовет прерывание eval ():

var obj = new Object();
var x = 'delete';
var y = 2;
eval('obj.' + x + ' = y');

Этот код работает:

var obj = new Object();
var x = 'delete';
var y = 2;
eval('obj[\'' + x + '\'] = y');

Таким образом, не используйте eval() для создания obj.delete = somevalue. Используйте eval() для создания эквивалентного оператора obj["delete"] = somevalue.

Если вы возвращаете ответ на запрос ajax в JSON, убедитесь, что вы используете 'application/json' для Content-Type.

Если это приложение Rails, проверьте, что format.js находится в блоке response_to.

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

error in event handler for 'undefined': SyntaxError: Unexpected token ILLEGAL
chrome/EventBindings:183

В конце концов, при проверке правильности кода в FireFox я наткнулся на ответ как предупреждение о том, что в каком-то тексте есть '&', который следует преобразовать в '&amp;' - как только это было сделано, ошибка Chrome исчезла.

Стив

Чтобы расширить это, данные из запроса к базе данных с '&' в нем также вызовут эту ошибку ...

Steve 18.08.2011 10:27

Я также столкнулся с этой ошибкой в ​​Chrome Dev Tools, и моя причина была похожа на причину Мэтью О'Риордана, за исключением того, что это был не MIME-тип Accept, а скорее сломанный URL-адрес AJAX.

Я изменил структуру папок и забыл обновить URL-адрес; как только я исправил URL, ошибка Dev Tools JS исчезла. Надеюсь это поможет! :)

Другие вопросы по теме