Error script error see javascript console for details перевод

Так как язык программирования достаточно объёмный и сложный, с ним часто возникают проблемы даже у опытных специалистов. Некоторые ошибки, совершенные в коде могут подвергнуть не один, а сразу несколько сервисов. Но из такой ситуации можно выйти с помощью всего нескольких действий. Error script error see javascript console for details: как исправить в Opera Browser Ошибки […]

На чтение 2 мин Просмотров 1.2к. Опубликовано 03.09.2022

Так как язык программирования достаточно объёмный и сложный, с ним часто возникают проблемы даже у опытных специалистов. Некоторые ошибки, совершенные в коде могут подвергнуть не один, а сразу несколько сервисов. Но из такой ситуации можно выйти с помощью всего нескольких действий.

Error script error see javascript console for details: как исправить в Opera Browser

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

Исправить недочёт можно только тогда, когда он будет замечен. Для этого требуется провести скрупулёзный анализ всех предложений. Ведь сбой в системе может выдать даже одна неправильная буква.

Найти и устранить неполадку поможет даже консоль браузера. Она в основном вызывается простым нажатием клавиши F12. Такой метод в большинстве случаев используется для исправления тысяч недочётов. Если же проблема кроется в единственной строке, её можно исправить и вручную.

Кроме того, что консоль позволяет устранять найденные несоответствия, она также даёт возможность писать в ней свой код. Это удобно, особенно для программистов, которые быстро работают, не обращая внимания на мелкие детали. Такой способ подходит для нескольких браузеров, в том числе для Chrome.

Удобство консоли заключается в том, что в неё можно вставить уже готовый текст или же написать туда полностью новый. Автоматически программа выдаст все ошибки и поможет в их быстром исправления. После этого можно проверять свою работу на правильность.

Если все написано правильно и код не имеет никаких несоответствий, тогда он запуститься и предстанет в нужном виде. Если же устранить неполадку не получилось, необходимо пробовать ещё и ещё.

Как вариант, можно также попросить кого-то из своих знакомых, кто тоже пишет Javascript, чтобы они посмотрели готовый вариант на наличие неправильных символов.

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

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

«JavaScript error, что это значит?» — именно такой вопрос задают многие пользователи операционной системы Windows, так как это одна из самых известных проблем с несовместимостью в этой ОС. Данная ошибка оповещает пользователя, что произошел какой-то сбой в определенном программном обеспечении. Многие проблемы подобного рода можно исправить самостоятельно, но некоторые из них могут исправить только квалифицированные специалисты.

 

JavaScript error, что это значит

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

  • нарушение в каких-либо процессах приложения;
  • повреждение системных файлов;
  • отключение какой-либо службы;
  • и др.

Чаще всего таким ошибкам подвержены операционные системы Windows 7, 8 или 10, когда происходит запуск таких популярных программ, как Skype, Faceit, Discord или некоторых компьютерных игр. Подобные проблемы получаются из-за несовместимости программ и операционной системы. Какая именно из программ выдает подобную проблему определить несложно, так как именно при ее запуске система выдает оповещение «JavaScript error».

 

Как исправить JavaScript error (ява скрипт эррор)?

  1. Первое, что необходимо выполнить, — это проверить компьютер на предмет заражения вирусом, потому что вирусы очень часто провоцируют подобные ошибки. А спонсором данного материала является сайт Уфавип, на котором размещены анкеты всех шлюх в Уфе из Черниковки. На нем вы непременно сможете подобрать проститутку, подходящую вам как в плане цены, так и в плане предоставляемых ею услуг. Если антивирус обнаружил вирус, то исключите его и попробуйте заново запустить приложение, которое вызвало проблему «JavaScript error».
  2. Нужно обновить программное обеспечение, которое вызвало ошибку, и саму операционную систему. Из-за отсутствия обновлений возникают подобные проблемы. А иногда ошибка может возникнуть из-за того, что один компонент обновился, а другой нет: например, программу вы обновили, а ОС нет. В результате вылезает «JavaScript error», а вы бежите в интернет узнавать, что это значит.
  3. Еще одним популярным решением является полный «снос» проблемного ПО, а потом его переустановка.
  4. Также при ошибке «JavaScript error» может помочь восстановление операционной системы до той даты, когда она функционировала нормально.

Иногда ошибки типа «JavaScript error» возникают не с компьютерными приложениями, а с вебресурсами, очень часто они возникают в соцсетях и мешают просматривать видео, фото и другой контент. Не нужно паниковать, так как подобные проблемы в основном решаются простым действием — нужно очистить кэш браузера. Сделать это можно через внутренние настройки браузера или с помощью дополнительных программ.

 

Заключение

JavaScript error имеет множество разновидностей, но практически все они решаются перечисленными выше действиями. Если ни один из способов вам не помог — это значит, что самое время обратиться в специализированный сервис, потому как есть шанс, что проблема расположена намного «глубже», чем может достать обычный пользователь.

Ошибка JavaScript. Как найти и исправить ошибку JavaScript

От автора: приветствую вас, друзья. Из этой небольшой статьи мы с вами узнаем, как увидеть и исправить ошибки JavaScript. Статья написана для начинающих изучение JavaScript.

При написании программы на любом языке программирования так или иначе не обходится без ошибок, которые необходимо уметь найти и исправить. В качестве примера давайте напишем простейшую программу, которая должна показать модальное окно:

В этой простейшей программе есть ошибка JavaScript, которую нам и нужно найти, поскольку с ней наш код не работает и модальное окно не показывается. Мало того, в JavaScript многие ошибки можно назвать фатальными, поскольку из-за них может прекратить работу не только ваш скрипт, но и сторонние библиотеки JavaScript до тех пор, пока ошибка не будет исправлена.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

Что же поможет найти ошибки JavaScript? Консоль браузера. Здесь мы вкратце пройдемся по этому инструменту в различных браузерах, в частности это будет Firefox и Chrome. В обоих браузерах консоль есть из коробки.

Начнем с Firefox. Для того, чтобы увидеть ошибку в нашем коде, необходимо открыть консоль браузера. Для этого кликаем в окне браузера правой кнопкой мыши и в контекстном меню выбираем пункт Исследовать элемент.

Внизу окна появится панель, в которой мы можем исследовать и отлаживать наш код. Полагаю, если вы верстали сайты, вы уже могли использовать этот инспектор кода для исследования верстки. Инструмент значительно упрощает жизнь верстальщика, даже и не представляю, как раньше верстали сайты без него 🙂

Итак, в открывшейся панели рядом со вкладкой Инспектор есть вкладка Консоль, она то нас и интересует. Переключимся на нее, еще раз обновим страницу и увидим все ошибки JavaScript. В нашем случае это всего одна синтаксическая ошибка, которая произошла в файле scripts.js на первой строке.

Нам остается лишь перейти в данный файл, заметить, что мы забыли заключить строку в кавычки и исправить эту ошибку:

Вот теперь ошибок нет и код успешно выполнился. Кроме встроенной консоли для Firefox можно отдельно установить расширение Firebug, которое, по сути, является аналогом. После установки Firebug можно вызвать, как и встроенную консоль, из контекстного меню или использовать для этого горячую клавишу F12. Вот таким образом выглядит Firebug:

Ну и консоль Хрома:

Она также вызывается из контекстного меню или клавишей F12.

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

На этом статья подошла к концу, теперь вы знаете, как найти в своем коде ошибки JavaScript и исправить их. Если вы хотите больше узнать о JavaScript, тогда рекомендую обратить свое внимание на уроки по JavaScript и отдельный курс по языку JavaScript. Удачи!

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Узнать подробнее

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Смотреть

У меня есть скрипт, который обнаруживает ошибки Javascript на моем веб-сайте и отправляет их в бэкэнд для отчетов. Он сообщает о первой обнаруженной ошибке, предполагаемом номере строки и времени.

ИЗМЕНИТЬ, чтобы включить тип документа .

<!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" xmlns:fb="http://www.facebook.com/2008/fbml">

<script type="text/javascript">
//<![CDATA[
// for debugging javascript!
(function(window){
    window.onerror = function(msg, url, ln) {
        //transform errors
        if (typeof(msg) === 'object' && msg.srcElement && msg.target) {
            if(msg.srcElement == '[object HTMLScriptElement]' && msg.target == '[object HTMLScriptElement]'){
                msg = 'Error loading script';
            }else{
                msg = 'Event Error - target:' + msg.target + ' srcElement:' + msg.srcElement;
            }
        }

        msg = msg.toString();

        //ignore errors
        if(msg.indexOf("Location.toString") > -1){
            return;
        }
        if(msg.indexOf("Error loading script") > -1){
            return;
        }

        //report errors
        window.onerror = function(){};
        (new Image()).src = "/jserror.php?msg=" + encodeURIComponent(msg) + "&url=" + encodeURIComponent(url || document.location.toString().replace(/#.*$/, "")) + "&ln=" + parseInt(ln || 0) + "&r=" + (+new Date());
    };
})(window);
//]]>
</script>

Из-за этого скрипта я хорошо осведомлен о любых ошибках JavaScript, которые происходят на моем сайте. Один из крупнейших нарушителей — «Ошибка сценария». в строке 0. в Chrome 10+ и Firefox 3+. Эта ошибка не существует (или может называться как-то еще?) В Internet Explorer.

Исправление (23.05.2013): Эта ошибка «Ошибка сценария, строка 0» теперь отображается в IE7 и, возможно, в других версиях IE. Возможно, это результат недавнего исправления безопасности IE, так как ранее такого поведения не было.

Кто-нибудь знает, что означает эта ошибка или что ее вызывает? Это происходит примерно на 0,25% моих общих загрузок страниц и составляет половину зарегистрированных ошибок.

13 ответов

Лучший ответ

«Ошибка сценария». происходит в Firefox, Safari и Chrome, когда исключение нарушает политику одного и того же происхождения браузера, т.е. когда ошибка возникает в сценарии, размещенном в домене, отличном от домена текущей страницы.

Такое поведение является преднамеренным, чтобы предотвратить утечку информации скриптами во внешние домены. Для примера, почему это необходимо, представьте, что вы случайно посетили evilsite.com, который открывает страницу с <script src="yourbank.com/index.html">. (да, мы указываем этот тег сценария на HTML, а не на JS). Это приведет к ошибке скрипта, но эта ошибка интересна тем, что может сообщить нам, вошли вы в систему или нет. Если вы вошли в систему, ошибка может быть 'Welcome Fred...' is undefined, а если нет, то это может быть 'Please Login ...' is undefined. Что-то в этом роде.

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

Я проверял это в последних версиях Safari, Chrome и Firefox — все они делают это. IE9 этого не делает — он обрабатывает исключения x-origin так же, как исключения того же происхождения. (И Опера не поддерживает ошибку.)

Изо рта лошади: Источник WebKit, который проверяет источник при передаче исключений в onerror (). И источник Firefox, который проверяет.

ОБНОВЛЕНИЕ (21.10.11) . Ошибка Firefox, которая отслеживает эта проблема содержит ссылку на пост в блоге, который вдохновил на такое поведение.

ОБНОВЛЕНИЕ (12/2/14) . Теперь вы можете включить полный междоменный отчет об ошибках в некоторых браузерах, указав crossorigin атрибут для тегов сценария и сервер отправляет соответствующий CORS HTTP-заголовки ответа.


259

Dominic Farolino
22 Май 2017 в 10:02

В Chrome я также получаю «Ошибка сценария» (в строке 0) при загрузке HTML и Javascript из file://. Этого не происходит в Firefox. Вероятно, слишком усердная защита Chrome того же происхождения.

Все хорошо при загрузке того же HTML и Javascript через HTTP.


1

Myrne Stol
23 Май 2013 в 23:23

Из-за низкого% вы можете предположить, что они не обычные пользователи. Возможно, пользователи с пользовательскими скриптами, букмарклетами или даже просто возятся с консолью на вашем сайте. Наличие всего HTML страницы, где это происходит, может помочь проверить эту теорию. Как и полная ошибка. Это должно дать вам URL, это всегда то же самое? Строка действительно 0 или просто не определена?

Я не думаю, что установка значений по умолчанию в вашем onerror — это хорошая идея, и 0, вероятно, исходит от parseInt(ln || 0), когда ошибки на самом деле нет на странице (см. Примеры выше).

Добавление if, чтобы увидеть, известна ли строка либо в JavaScript, чтобы игнорировать эти ошибки (потому что они, вероятно, не происходят из вашего собственного кода), либо в коде на стороне сервера, чтобы позаботиться о них отдельно, было бы, imo, лучше ,

=== РЕДАКТИРОВАТЬ === Должен: http://www.xavierm02.net/AZE/ Установите файл user.js (я сделал это на Chrome, но он должен работать и на Firefox). Затем откройте HTML-страницу в том же браузере. Он покажет вам ошибку (я только изменил этот отчет о сообщении на сервер, он пишет на странице). С 0 в качестве номера строки.


10

xavierm02
11 Май 2011 в 07:19

Как насчет ниже. Ошибка скрипта не доступна через JavaScript, поэтому просто выделите этот конкретный случай и обработайте его как можно лучше.

window.onerror = function (msg, url, lineNo, columnNo, error) {
    var string = msg.toLowerCase();
    var substring = "script error";
    if (string.indexOf(substring) > -1){
        alert('Script Error: See Browser Console for Detail');
    } else {
        alert(msg, url, lineNo, columnNo, error);
    }
  return false;
};


1

Ronnie Royston
31 Май 2016 в 19:20

Я провел небольшой поиск, и кажется, что «Ошибка скрипта» означает, что у него возникли проблемы с загрузкой файла, который его попросили найти. Это может быть проблема с кэшированием на стороне клиента или проблема с сервером из-за перегрузки.

Скорее всего, это вызвано чем-то вроде этого, где сам скрипт — это файл, который он не может загрузить, поэтому ошибка в строке 0.

<script type="text/javascript" src="somescript.js"></script>


-2

Nick Brunt
6 Май 2011 в 16:19

Я испытал

Ошибка скрипта. строка 0

Сообщения об ошибках в течение некоторого времени возвращаются на наш сервер при возникновении ошибки в клиентских браузерах. Вчера впервые (после введения "use strict"; в наш javascript) я смог повторить эту проблему в Safari и Chrome в Windows 7. После засорения нашего кода с помощью операторов alert () я отследил эту ошибку до использования неопределенная переменная! например xx = 123; где xx не определено с оператором var.

Safari сообщил об этом как

ReferenceError: Строгий режим запрещает неявное создание глобального свойства ‘xx’

В веб-инспекторе, но обнаруживалась функция window.onerror

Ошибка скрипта. строка 0


-3

Wandering Zombie
11 Фев 2013 в 12:13

Обновление для тех, кто столкнется с этим вопросом в будущем: брофа прав с ответом, и для этого нет обходного пути.

Очевидно, что другие сталкивались с этим ограничением, и некоторые ошибки, запрашивающие исправление, были поданы для Firefox: Ошибка 69301 и для WebKit: Ошибка 70574

Хорошей новостью является то, что ошибка была исправлена для Firefox с выпуском Firefox 13. Вот как вы его используете:

<script src="http://somremotesite.example/script.js" crossorigin>

crossorigin эквивалентен crossorigin=anonymous и сообщает браузеру выполнить выборку сценария CORS без отправки учетных данных.

Вы должны убедиться, что сценарий отправлен со значением заголовка HTTP Access-Control-Allow-Origin, которое соответствует запрашивающему домену, например,

Access-Control-Allow-Origin: http://myhomesite.example
Access-Control-Allow-Origin: *

в противном случае браузер отменит загрузку скрипта .

Для Apache:

Header set Access-Control-Allow-Origin "*"

(И посмотрите примеры CORS для других веб-серверов.)

Если вы отправляете скрипты на PHP:

header('Access-Control-Allow-Origin', 'http://myhomesite.example');

Я проверил это, и он работает как ожидалось. все ошибки из script.js будут перехвачены обработчиком window.onerror с подробным сообщением, файлом и строкой.

Ошибка WebKit еще не исправлена, но был предложен патч (и использует то же решение). Надеюсь, исправление будет выпущено в ближайшее время.

Подробнее о CORS можно узнать здесь: http://enable-cors.org/.


49

sam
12 Окт 2012 в 20:46

У меня была похожая проблема: мои сценарии обслуживаются поддоменом и подпадают под то же ограничение происхождения. Однако я решил это следующим образом:

1) добавление каждого тега скрипта следующим образом:

<script type="text/javascript" src="http://subdomain.mydomain.tld" crossorigin="*.mydomain.tld" />

2) изменить apache httpd.conf, добавив в каждый vhost следующее (вы должны включить mod_headers):

<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin "*.mydomain.tld"
</IfModule>

Надеюсь это поможет …

ИЗМЕНИТЬ

На одном из моих серверов я не смог сделать этот функционал, кроме как заменив

*.mydomain.tld

От

*

Помните о недостатках, которые могут позволить * фишировать расширенную информацию. Документация по CORS, одинакового происхождения, img & fonts, cdn доступна, но доступно очень мало подробностей о происхождении тега скрипта.


3

spoutnik
11 Авг 2012 в 15:51

Извлечение исходного кода из Firefox показывает, что нет "Script Error.". Таким образом, очень вероятно, что какой-то скрипт на вашем сайте выдает неперехваченную ошибку, подобную этой:

throw new Error('Script Error.');

Вероятно, это утверждение достигается только в Firefox и Chrome.

Не уверен, почему нет номера строки, хотя. Может быть, eval() проблема?


-11

user123444555621
10 Май 2011 в 21:59

И Chrome, и Firefox на iOS основаны на веб-представлении Safari, но вставляют несколько пользовательских сценариев в каждую загруженную страницу. Если в каком-либо из этих сценариев что-то идет не так, он также получает сообщение Script error on line 0. (Скрипты, вставленные в браузер, также считаются перекрестными источниками)

Как я выследил и задокументировал в этой другой SO-теме Как в Chrome, так и в Firefox на iOS есть проблемы в пользовательских скриптах, корректно обрабатывающих элементы SVG. Итак, в дополнение ко всем остальным ответам в этой теме: если вы используете элементы SVG и теги <a> внутри тегов <svg> на своей странице, это приведет к тому, что Script errors будет сообщаться в iOS Chrome и iOS Fire Fox.


0

Laszlo Korte
25 Сен 2019 в 01:36

Я расскажу вам, что это исправило для меня в Safari (WebKit): Если я на самом деле добавлю подпрограмму обратного вызова JS на страницу , то получу полную информацию. Если я включаю его в файл .js через тег, я просто получаю сообщение об ошибке «Ошибка скрипта» (без номера белья и т. Д.).

Может быть, это связано с тем, что сказал Бруфа.

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


-1

kbern
25 Окт 2011 в 21:36

Этому потребовалось немало времени, чтобы понять.

Мы сделали кучу вещей, чтобы попытаться решить их, включая такие вещи, как выгрузка всего тела документа обратно на наши серверы через Ajax, чтобы попытаться выяснить это.

Я все еще не уверен, что вызывает «Ошибка скрипта». (с периодом BTW, вот как это проявляется в нашем Ajax-логгере) в Firefox, но в Chrome мы смогли сузить его до …

Барабанная дробь…

Функция автоматического перевода Google Chrome.

Многие англоговорящие люди, вероятно, даже не знают об этой функции, но для ее тестирования, я думаю, посетите неанглоязычный сайт с помощью Chrome. Или, что еще лучше, если вы поковыряетесь в настройках Chrome, есть место для изменения языка браузера. Измените его на что-нибудь неанглийское, перезапустите браузер и посетите сайт на английском языке.

В верхней части окна должна появиться панель с вопросом, хотите ли вы, чтобы Chrome перевел страницу для вас.

В любом случае, в нашем случае переводчик вызывал проблему, так как он вставляет тег скрипта в тело документа и (догадываясь здесь) использует какую-то систему на основе JS для отправки контента на серверы Google и получения его для его перевода.

Несмотря на то, что ошибка в консоли была чем-то не связанным, сообщение, которое отправлялось в window.onerror, было «Ошибка сценария».

В любом случае, есть лекарство.

http://googlewebmastercentral.blogspot.com/2007/12/answering-more-popular-picks-meta-tags.html

<meta name="google" content="notranslate"/>

Это сделает 2 вещи (насколько мы знаем, может быть, больше?):

A) Отключите переводчик, чтобы он появлялся в Chrome.

Б) Отключить перевод страницы через translate.google.com.

В любом случае, в нашей ситуации это решило тонну этих «ошибок сценария». проблемы, которые мы испытывали.

Извините за орфографические ошибки в этом посте, я все еще нахожусь на неанглийском режиме в Chrome, пишущем это, и проверка орфографии не установлена на английский;) Время переключиться назад.

Наслаждайтесь!


23

John Washam
8 Июл 2015 в 21:04

  • Назад
  • Обзор: Первые шаги
  • Далее

Когда вы создали игру «Угадай номер» в предыдущей статье, вы, возможно, обнаружили, что она не работает. Не бойтесь — эта статья призвана избавить вас от разрыва волос над такими проблемами, предоставив вам несколько простых советов о том, как найти и исправить ошибки в программах JavaScript.

Нужно: базовая компьютерная грамотность, базовое понимание HTML и CSS, понимание того, что такое JavaScript.
Цель получить способность и уверенность в том, чтобы приступить к исправлению простых проблем в вашем собственном коде.

Типы ошибок

Когда вы делаете что-то не так в коде, есть два основных типа ошибок, с которыми вы столкнётесь:

  • Синтаксические ошибки: Это орфографические ошибки в коде, которые фактически заставляют программу вообще не запускаться, или перестать работать на полпути — вам также будут предоставлены некоторые сообщения об ошибках. Обычно они подходят для исправления, если вы знакомы с правильными инструментами и знаете, что означают сообщения об ошибках!
  • Логические ошибки: Это ошибки, когда синтаксис действительно правильный, но код не тот, каким вы его предполагали, что означает, что программа работает успешно, но даёт неверные результаты. Их часто сложнее находить, чем синтаксические ошибки, так как обычно не возникает сообщение об ошибке, которое направляет вас к источнику ошибки.

Ладно, все не так просто — есть и другие отличия, которые вы поймёте, пока будете изучать язык JavaScript глубже. Однако вышеуказанной классификации достаточно на раннем этапе вашей карьеры. Мы рассмотрим оба эти типа в дальнейшем.

Ошибочный пример

Чтобы начать работу, давайте вернёмся к нашей игре с угадыванием чисел — за исключением того, что мы будем изучать версию с некоторыми преднамеренными ошибками. Перейдите в Github и сделайте себе локальную копию number-game-errors.html (см. здесь как это работает).

  1. Чтобы начать работу, откройте локальную копию внутри вашего любимого текстового редактора и вашего браузера.
  2. Попробуйте сыграть в игру — вы заметите, что когда вы нажимаете кнопку «Submit guess», она не работает!

Примечание: Возможно, у вас может быть собственная версия игрового примера, которая не работает, которую вы можете исправить! Мы по-прежнему хотели бы, чтобы вы работали над статьёй с нашей версией, чтобы вы могли изучать методы, которые мы здесь преподаём. Затем вы можете вернуться и попытаться исправить ваш пример.

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

Исправление синтаксических ошибок

Раньше в курсе мы заставили вас набрать некоторые простые команды JavaScript в консоль разработчика JavaScript (если вы не можете вспомнить, как открыть это в своём браузере, следуйте предыдущей ссылке, чтобы узнать, как это сделать). Что ещё более полезно, так это то, что консоль предоставляет вам сообщения об ошибках всякий раз, когда существует синтаксическая ошибка внутри JavaScript, которая подаётся в механизм JavaScript браузера. Теперь пойдём на охоту.

  1. Перейдите на вкладку, в которой у вас есть number-game-errors.html, и откройте консоль JavaScript. Вы должны увидеть сообщение об ошибке в следующих строках:
  2. Это довольно простая ошибка для отслеживания, и браузер даёт вам несколько полезных бит информации, которые помогут вам (скриншот выше от Firefox, но другие браузеры предоставляют аналогичную информацию). Слева направо, у нас есть:
    • Красный «x» означает, что это ошибка.
    • Сообщение об ошибке, указывающее, что пошло не так: «TypeError: guessSubmit.addeventListener не является функцией»
    • Ссылка «Узнать больше», которая ссылается на страницу MDN, которая объясняет, что эта ошибка означает в огромных количествах деталей.
    • Имя файла JavaScript, который ссылается на вкладку «Отладчик» консоли разработчика. Если вы перейдёте по этой ссылке, вы увидите точную строку, где подсвечивается ошибка.
    • Номер строки, в которой находится ошибка, и номер символа в этой строке, где первая ошибка. В этом случае у нас есть строка 86, символ номер 3.
  3. Если мы посмотрим на строку 86 в нашем редакторе кода, мы найдём эту строку:
    guessSubmit.addeventListener('click', checkGuess);
    
  4. В сообщении об ошибке говорится, что «guessSubmit.addeventListener не является функцией», поэтому мы, вероятно, где-то ошиблись. Если вы не уверены в правильности написания синтаксиса, часто бывает полезно найти функцию на MDN. Лучший способ сделать это в настоящее время — поиск «mdn имя-функции» в вашей любимой поисковой системе. Вот ссылка, которая поможет сократить вам некоторое время в данном случае: addEventListener().
  5. Итак, глядя на эту страницу, кажется, что ошибка в том, что мы неправильно назвали имя функции! Помните, что JavaScript чувствителен к регистру, поэтому любые незначительные отличия в орфографии или регистре текста могут вызвать ошибку. Изменение этого параметра в addEventListener должно быть исправлено. Сделайте это сейчас.

**Примечание:**См. наш TypeError: «x» не является справочной страницей функций для получения дополнительной информации об этой ошибке.

Синтаксические ошибки: второй раунд

Примечание: console.log() это часто используемая функция отладки, которая выводит значение в консоль. Поэтому она будет выводить значение lowOrHi в консоли, как только мы попытаемся установить его в строке 48.

  1. Сохраните и обновите страницу, и вы увидите, что ошибка исчезла.
  2. Теперь, если вы попробуете ввести значение и нажать кнопку «Submit guess», вы увидите … другую ошибку!
  3. На этот раз сообщается об ошибке: «TypeError: lowOrHi is null», в строке 78.

    Примечание: Null — это специальное значение, которое означает «ничего» или «не значение». Поэтому lowOrHi был объявлен и инициализирован без значения — у него нет типа или значения.

    Примечание: Эта ошибка не появилась, как только страница была загружена, потому что эта ошибка произошла внутри функции (внутри checkGuess() { ... } блока). Об этом вы узнаете более подробно в нашей более поздней статье о функциях, код внутри функций выполняется в отдельной области для кода внешних функций. В этом случае код не был запущен, и ошибка не была брошена до тех пор, пока функция checkGuess() не была запущена строкой 86.

  4. Посмотрите на строку 78, и вы увидите следующий код:
    lowOrHi.textContent = 'Last guess was too high!';
    
  5. Эта строка пытается установить свойство textContent переменной lowOrHi как текстовую строку, но это не работает, поскольку lowOrHi не содержит того, что должна. Давайте посмотрим, почему так происходит — попробуйте найти другие экземпляры lowOrHi в коде. Самый ранний экземпляр, который вы найдёте в JavaScript, находится в строке 48:
    const lowOrHi = document.querySelector('lowOrHi');
    
  6. На этом этапе мы пытаемся заставить переменную содержать ссылку на элемент документа HTML. Давайте проверим, является ли значение null после выполнения этой строки. Добавьте следующий код в строку 49:
  7. Сохраните и обновите, и вы должны увидеть результат работы console.log() в консоли браузера.
    Разумеется, значение lowOrHi на данный момент равно null, поэтому определённо существует проблема в строке 48.
  8. Давайте подумаем о том, что может быть проблемой. Строка 48 использует метод document.querySelector() для получения ссылки на элемент, выбирая его с помощью селектора CSS. Посмотрев далее наш файл, мы можем найти обсуждаемый элемент <p>:
  9. Поэтому нам нужен селектор классов, который начинается с точки (.), но селектор, передаваемый в метод querySelector() в строке 48, не имеет точки. Возможно, это и есть проблема! Попробуйте изменить lowOrHi на .lowOrHi в строке 48.
  10. Повторите попытку сохранения и обновления, и ваш вызов console.log() должен вернуть элемент <p>, который мы хотим. Уф! Ещё одна ошибка исправлена! Вы можете удалить строку с console.log() сейчас, или оставить для дальнейшего применения — выбирайте сами.

Примечание: Загляните на справочную страницу TypeError: «x» is (not) «y», чтобы узнать больше об этой ошибке.

Синтаксические ошибки: третий раунд

  1. Теперь, если вы снова попробуете сыграть в игру, вы должны добиться большего успеха — игра должна играть абсолютно нормально, пока вы не закончите игру, либо угадав нужное число, либо потеряв жизни.
  2. На данном этапе игра снова слетает, и выводится такая же ошибка, как и в начале — «TypeError: resetButton.addeventListener is not a function»! Однако, теперь она происходит из-за строки 94.
  3. Посмотрев на строку 94, легко видеть, что здесь сделана такая же ошибка. Нам просто нужно изменить addeventListener на addEventListener.

Логическая ошибка

На этом этапе игра должна проходить отлично, однако, поиграв несколько раз, вы, несомненно заметите, что случайное число, которое вы должны угадать, всегда 0 или 1. Определённо не совсем так, как мы хотим, чтобы игра была разыграна!

Безусловно, где-то в игре есть логическая ошибка — игра не возвращает ошибку, она просто работает неправильно.

  1. Найдём переменную randomNumber , и строку где в первый раз устанавливали случайное число. Пример, в котором мы храним случайное число, которое должны угадать, на строке 44:
    let randomNumber = Math.floor(Math.random()) + 1;
    

    И на строке 113, где мы генерируем случайное число, каждый раз после окончания игры:

    randomNumber = Math.floor(Math.random()) + 1;
    
  2. Чтобы проверить, действительно ли проблема в этом, давайте обратимся к нашему другу console.log() снова — вставьте её ниже строк с ошибками:
    console.log(randomNumber);
    
  3. Сохраните и обновите, а дальше попробуйте пару раз сыграть — в консоли вы увидите что randomNumber равна 1 в каждой точке, где вы её записали после строк с ошибками.

Работаем через логику

Чтобы исправить это, давайте рассмотрим как работает строка. Первое, мы вызываем Math.random(), который генерирует случайное десятичное число, между 0 и 1, например 0.5675493843.

Дальше, мы передаём результат вызова Math.random() через Math.floor(), который округляет число вниз, до ближайшего целого числа. Затем мы добавляем 1 к данному результату:

Math.floor(Math.random()) + 1;

Округление случайного десятичного числа к меньшему, всегда будет возвращать 0, так что добавление к нему единицы будет возвращать всегда 1. Нам нужно умножить случайное число на 100, прежде чем мы округлим его к меньшему. Следующая строка вернёт нам случайное число между 0 и 99:

Math.floor(Math.random() * 100);

поэтому нам нужно добавить 1, чтоб нам возвращалось случайное число между 1 и 100:

Math.floor(Math.random() * 100) + 1;

А теперь, исправьте обе строки с ошибками, затем сохраните и обновите, игра должна работать так, как мы и планировали!

Другие распространённые ошибки

Существуют и другие распространённые ошибки, которые вы обнаружите в своём коде. В этом разделе показано большинство из них.

SyntaxError: отсутствует ; перед постановкой

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

var userGuess = Number(guessField.value);

на эту

var userGuess === Number(guessField.value);

Это вызовет данную ошибку, потому что браузер подумает, что вы пытались сделать что-то другое. Вы должны быть уверены, что вы не перепутали оператор присваивания (=), который присваивает значение переменной — с оператором сравнения (===), который строго сравнивает операнды, и возвращает true/false .

В программе всегда говорится, что вы выиграли, независимо от того, что вы ввели

Причиной этому является все то же перепутывание оператора присваивания (=) со строгим сравнением (===). Например, если мы изменим внутри checkGuess() эту строку кода:

if (userGuess === randomNumber) {

на эту

if (userGuess = randomNumber) {

мы всегда будем получать true, заставляя программу сообщать, что игра была выиграна. Будьте осторожны!

SyntaxError: отсутствует ) после списка аргументов

Эта ошибка проста — обычно она означает, что вы пропустили закрывающую скобку с конца вызова функции / метода.

SyntaxError: missing : after property id

Эта ошибка обычно связана с неправильно сформированным объектом JavaScript, но в этом случае нам удалось получить её, изменив

на

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

SyntaxError: missing } after function body

Это легко — обычно это означает, что вы пропустили одну из ваших фигурных скобок из функции или условной структуры. Мы получили эту ошибку, удалив одну из закрывающих фигурных скобок возле нижней части функции checkGuess().

SyntaxError: expected expression, got ‘string‘ or SyntaxError: unterminated string literal

Эти ошибки обычно означает, что вы пропустили открывающую или закрывающую кавычку для строковых значений. В первой ошибки выше, строка будет заменена на неожиданный персонаж (ей) , что браузер нашёл вместо кавычек в начале строки. Вторая ошибка означает , что строка не закончилась кавычки.

При всех этих ошибках действуйте так, как в наших примерах, которые мы рассмотрели в пошаговом руководстве. Когда возникает ошибка, посмотрите полученный номер строки, перейдите к этой строке и посмотрите, можете ли вы определить, что случилось. Имейте в виду, что ошибка не обязательно будет на этой строке, а также, что ошибка может быть вызвана не такой же проблемой, которую мы привели выше!

Резюме

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

Смотрите также

  • Есть много других типов ошибок, которые не перечислены здесь; мы составляем ссылку , которая объясняет , что они означают подробно — см. ссылку ошибки JavaScript .
  • Если вы столкнётесь с любыми ошибками в коде, которые вы не знаете , как исправить после прочтения этой статьи, вы можете получить помощь! Спросите на нить обучения Область дискурсе , или в #mdn IRC канал на Mozilla IRC. Расскажите нам, какая у вас ошибка, и мы постараемся вам помочь. Приложите пример своего кода для большей ясности проблемы.
  • Назад
  • Обзор: Первые шаги
  • Далее

У меня есть скрипт, который обнаруживает ошибки Javascript на моем веб-сайте и отправляет их в бэкэнд для отчетов. Он сообщает о первой обнаруженной ошибке, предполагаемом номере строки и времени.

РЕДАКТИРОВАТЬ, чтобы включить doctype:

<!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" xmlns:fb="http://www.facebook.com/2008/fbml">

<script type="text/javascript">
//<![CDATA[
// for debugging javascript!
(function(window){
    window.onerror = function(msg, url, ln) {
        //transform errors
        if (typeof(msg) === 'object' && msg.srcElement && msg.target) {
            if(msg.srcElement == '[object HTMLScriptElement]' && msg.target == '[object HTMLScriptElement]'){
                msg = 'Error loading script';
            }else{
                msg = 'Event Error - target:' + msg.target + ' srcElement:' + msg.srcElement;
            }
        }

        msg = msg.toString();

        //ignore errors
        if(msg.indexOf("Location.toString") > -1){
            return;
        }
        if(msg.indexOf("Error loading script") > -1){
            return;
        }

        //report errors
        window.onerror = function(){};
        (new Image()).src = "/jserror.php?msg=" + encodeURIComponent(msg) + "&url=" + encodeURIComponent(url || document.location.toString().replace(/#.*$/, "")) + "&ln=" + parseInt(ln || 0) + "&r=" + (+new Date());
    };
})(window);
//]]>
</script>

Из-за этого скрипта я хорошо осведомлен о любых ошибках JavaScript, которые происходят на моем сайте. Один из крупнейших нарушителей — «Ошибка сценария». в строке 0. в Chrome 10+ и Firefox 3+. Эта ошибка не существует (или может называться как-то еще?) В Internet Explorer.

Исправление (23.05.2013): эта ошибка «Ошибка сценария, строка 0» теперь отображается в IE7 и, возможно, в других версиях IE. Возможно, это результат недавнего исправления безопасности IE, так как ранее такого поведения не было.

Кто-нибудь знает, что означает эта ошибка или что ее вызывает? Это происходит примерно на 0,25% моих общих загрузок страниц и составляет половину зарегистрированных ошибок.






Ответы:


«Ошибка сценария». происходит в Firefox, Safari и Chrome, когда исключение нарушает политику браузера с тем же происхождением, т. е. когда ошибка возникает в сценарии, размещенном в домене, отличном от домена текущей страницы.

Такое поведение является преднамеренным, чтобы предотвратить утечку информации скриптами во внешние домены. Для примера того, почему это необходимо, представьте себе случайное посещение evilsite.com, которое отображает страницу <script src="yourbank.com/index.html">. (да, мы указываем этот тег сценария на HTML, а не на JS). Это приведет к ошибке скрипта, но эта ошибка интересна тем, что может сообщить нам, вошли вы в систему или нет. Если вы вошли в систему, ошибка может быть 'Welcome Fred...' is undefined, а если нет, то это может быть 'Please Login ...' is undefined. Что-то в этом роде.

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

Я проверял это в последних версиях Safari, Chrome и Firefox — все они делают это. IE9 этого не делает — он обрабатывает исключения x-origin так же, как исключения того же происхождения. (И Опера не поддерживает ошибку.)

Из уст лошадей: источник WebKit, который проверяет происхождение при передаче исключений в onerror (). И источник Firefox, который проверяет .

ОБНОВЛЕНИЕ (21.10.11) : ошибка Firefox, которая отслеживает эту проблему, включает ссылку на пост в блоге, который вдохновил это поведение.

ОБНОВЛЕНИЕ (12/2/14) : теперь вы можете включить полный междоменный отчет об ошибках в некоторых браузерах, указав crossoriginатрибут в тегах сценария и сделав так, чтобы сервер отправлял соответствующие заголовки HTTP-ответов CORS .







Обновление для тех, кто столкнется с этим вопросом в будущем: брофа прав с ответом, и для этого нет обходного пути.

Очевидно, что другие столкнулись с этим ограничением, и некоторые ошибки, запрашивающие исправление, были поданы для Firefox: Ошибка 69301 и для WebKit: Ошибка 70574

Хорошей новостью является то, что ошибка была исправлена ​​для Firefox с выпуском Firefox 13. Вот как вы его используете:

<script src="http://somremotesite.example/script.js" crossorigin>

crossoriginэквивалентно crossorigin=anonymousи говорит браузеру выполнить выборку сценария CORS без отправки учетных данных.

Вы должны убедиться, что скрипт отправлен со Access-Control-Allow-Originзначением заголовка HTTP, которое соответствует запрашивающему домену, например,

Access-Control-Allow-Origin: http://myhomesite.example
Access-Control-Allow-Origin: *

в противном случае браузер отменит загрузку скрипта .

Для Apache:

Header set Access-Control-Allow-Origin "*"

(И посмотрите примеры CORS для других веб-серверов .)

Если вы отправляете скрипты на PHP:

header('Access-Control-Allow-Origin', 'http://myhomesite.example');

Я проверил это, и он работает как ожидалось. все ошибки из window.onerrorфайла script.js будут перехвачены обработчиком с подробным сообщением, файлом и строкой.

Ошибка WebKit еще не исправлена, но был предложен патч (и использует то же решение). Надеюсь, исправление будет выпущено в ближайшее время.

Больше информации о CORS здесь: http://enable-cors.org/





Этому потребовалось немало времени, чтобы понять.

Мы сделали кучу вещей, чтобы попытаться решить их, включая такие вещи, как выгрузка всего тела документа обратно на наши серверы через Ajax, чтобы попытаться выяснить это.

Я все еще не уверен, что вызывает «Ошибка скрипта». (с периодом между прочим, вот как это проявляется в нашем Ajax-логгере) в Firefox, но в Chrome мы смогли сузить его до …

Барабанная дробь…

Функция автоматического перевода Google Chrome.

Многие англоговорящие люди, вероятно, даже не знают об этой функции, но для ее тестирования, я думаю, посетите неанглоязычный сайт с помощью Chrome. Или, что еще лучше, если вы поковыряетесь в настройках Chrome, есть место для изменения языка браузера. Измените его на что-нибудь неанглийское, перезапустите браузер и посетите сайт на английском языке.

Вы должны получить панель вверху, спрашивая, хотите ли вы, чтобы Chrome перевел страницу для вас.

В любом случае, в нашем случае переводчик вызывал проблему, так как он вставляет тег сценария в тело документа и (догадываясь здесь) использует какую-то систему на основе JS для отправки контента на серверы Google и получения его для его перевода.

Несмотря на то, что ошибка в консоли была чем-то не связанным, сообщение, которое отправлялось в window.onerror, было «Ошибка сценария».

В любом случае, есть лекарство.

http://googlewebmastercentral.blogspot.com/2007/12/answering-more-popular-picks-meta-tags.html

<meta name="google" content="notranslate"/>

Это сделает 2 вещи (насколько мы знаем, может быть, больше?):

a) Отключите переводчик, чтобы он появлялся в Chrome.

б) Отключить перевод страницы через translate.google.com.

В любом случае, в нашей ситуации это решило тонну этих «ошибок сценария». проблемы, которые мы испытывали.

Извините за орфографические ошибки в этом посте, я все еще нахожусь на неанглийском режиме в Chrome, пишущем это, и проверка орфографии не установлена ​​на английский;) Время переключиться назад.

Наслаждайтесь!



Из-за низкого% вы можете предположить, что они не обычные пользователи. Возможно, пользователи с пользовательскими скриптами, букмарклетами или даже просто возятся с консолью на вашем сайте. Наличие всего HTML страницы, где это происходит, может помочь проверить эту теорию. Как и полная ошибка. Это должно дать вам URL, это всегда то же самое? Строка действительно 0 или просто не определена?

Я не думаю, что установка значений по умолчанию в вашем onerror — это хорошая идея, и 0, вероятно, появляется, parseInt(ln || 0)когда ошибки на самом деле нет на странице (см. Примеры выше).

Добавление if, чтобы увидеть, известна ли строка либо в JavaScript, чтобы игнорировать эти ошибки (потому что они, вероятно, не исходят из вашего собственного кода), либо в коде на стороне сервера, чтобы позаботиться о них отдельно, было бы, imo, лучше ,

=== РЕДАКТИРОВАТЬ === Получил:
http://www.xavierm02.net/AZE/
Установите файл user.js (я сделал это на Chrome, но он должен работать и на Firefox). Затем откройте HTML-страницу в том же браузере. Он покажет вам ошибку (я только изменил этот отчет о сообщении на сервер, он пишет это на странице). С 0 в качестве номера строки.







У меня была похожая проблема: мои сценарии обслуживаются поддоменом и подпадают под то же ограничение происхождения. Однако я решил это следующим образом:

1) добавление каждого тега скрипта следующим образом:

<script type="text/javascript" src="http://subdomain.mydomain.tld" crossorigin="*.mydomain.tld" />

2) изменить apache httpd.conf, добавив в каждый vhost следующее (вы должны включить mod_headers):

<IfModule mod_headers.c>
Header add Access-Control-Allow-Origin "*.mydomain.tld"
</IfModule>

Надеюсь это поможет …

РЕДАКТИРОВАТЬ

На одном из моих серверов я не смог сделать этот функционал, кроме как заменив

*.mydomain.tld

по

*

Помните о недостатках, которые могут позволить * фишировать расширенную информацию. Доступна документация по CORS, одинакового происхождения, img & fonts, cdn, но доступно очень мало подробностей о происхождении тега скрипта.



В Chrome я также получаю «Ошибка скрипта» (в строке 0) при загрузке как HTML, так и Javascript из file://. Этого не происходит в Firefox. Вероятно, чрезмерно усердная защита Chrome того же происхождения.

Все хорошо при загрузке того же HTML и Javascript через HTTP.


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

window.onerror = function (msg, url, lineNo, columnNo, error) {
    var string = msg.toLowerCase();
    var substring = "script error";
    if (string.indexOf(substring) > -1){
        alert('Script Error: See Browser Console for Detail');
    } else {
        alert(msg, url, lineNo, columnNo, error);
    }
  return false;
};





И Chrome, и Firefox на iOS основаны на веб-представлении Safari, но вставляют несколько пользовательских сценариев в каждую загруженную страницу. Если в каком-либо из этих сценариев что-то идет не так, о нем также сообщается Script error on line 0. (Скрипты, вставленные в браузер, также считаются перекрестными источниками)

Как я обнаружил и задокументировал в этом другом SO-потоке, у Chrome и Firefox на iOS есть проблемы в своих пользовательских скриптах, корректно обрабатывающих элементы SVG. Итак, в дополнение ко всем остальным ответам в этой теме: если вы используете SVG-элементы и <a>теги внутри <svg>тегов на своей странице, это приведет к Script errorsтому , что о них будет сообщено в iOS Chrome и iOS Firefox.


Я расскажу вам, что это исправило для меня в Safari (WebKit): если я на самом деле помещу процедуру обратного вызова JS на страницу , то получу полную информацию. Если я включаю его в файл .js через тег, я просто получаю сообщение об ошибке «Ошибка скрипта» (без номера белья и т. Д.).

Может быть, это связано с тем, что сказал Бруфа.

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


Я провел небольшой поиск, и кажется, что «Ошибка скрипта» означает, что у него возникли проблемы с загрузкой файла, который его попросили найти. Это может быть проблема с кэшированием на стороне клиента или проблема с сервером из-за перегрузки.

Скорее всего, это вызвано чем-то вроде этого, где сам скрипт — это файл, который он не может загрузить, поэтому ошибка в строке 0.

<script type="text/javascript" src="somescript.js"></script>





Я испытал

Ошибка сценария. строка 0

сообщения об ошибках в течение некоторого времени возвращаются на наш сервер, когда ошибка возникла в клиентских браузерах. Вчера впервые (после представления "use strict";в нашем javascript) я смог повторить эту проблему в Safari и Chrome на Windows 7. После засорения нашего кода с помощью операторов alert () я отследил эту ошибку до использования неопределенной переменной! например, xx = 123;где xx не определен с varоператором.

Safari сообщил об этом как

ReferenceError: Строгий режим запрещает неявное создание глобального свойства ‘xx’

в веб-инспекторе, но обнаруживалась функция window.onerror

Ошибка сценария. строка 0


Grepping исходный код Firefox показывает, что нет "Script Error.". Таким образом, очень вероятно, что какой-то скрипт на вашем сайте выдает неперехваченную ошибку, подобную этой:

throw new Error('Script Error.');

Вероятно, это утверждение достигается только в Firefox и Chrome.

Не уверен, почему нет номера строки, хотя. Может быть, какая-то eval()проблема?





Понравилась статья? Поделить с друзьями:
  • Error script error lampa
  • Error script compile error see console for details
  • Error script compilation the witcher 3 wild hunt error script compilation fix ошибка модов
  • Error screen recording has stopped unexpectedly
  • Error screen from pocket camp