Ошибка JavaScript во встроенном Internet Explorer

Ошибка JavaScript во встроенном Internet Explorer

У меня в офисе настроена настенная панель для отображения статистики, однако виджет, использующий встроенный Internet Explorer, постоянно выдает ошибку JavaScript.

введите описание изображения здесь

Ошибку можно закрыть, не вызывая проблем, но она раздражает, так как она продолжает возвращаться время от времени примерно 2-3 раза в день, и когда это происходит, она не позволяет никому просматривать статистику, пока она не будет закрыта удаленным доступом к wallboard. В обычном Internet Explorer это можно легко остановить, сняв галочку с опции ниже.

введите описание изображения здесь

Мой вопрос: как отключить всплывающее окно с ошибкой скрипта в Internet Explorer, встроенное в мой виджет?

Редактировать: Ответ на ответ от harrymc

Я отредактировал эти настройки с помощью regedit, следуя инструкциям harrymc, однако ошибка все еще появляется.

решение1

Поскольку вы можете редактировать реестр, в следующей статье перечислены многие настройки IE:
Как настроить параметры виртуального Internet Explorer.

Чтобы отключить функцию «Отображать уведомление о каждой ошибке скрипта», используйте следующий .reg-файл:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Error Dlg Displayed On Every Error"="no"

решение2

В этом конкретном случае, вместо того чтобы пытаться скрыть ошибку, вы можете вообще ее избежать (или указать поставщику на эту публикацию, чтобы он исправил свой JavaScript):

  • Возможно, сервер вообще не возвращает никакого значения для «открытых вкладок» в приведенном ниже JavaScript;попробуйте изменить настройки вкладок виджетачтобы заставить сервер установить какое-то значение. Если вы не можете сделать это в wallboard, попробуйте в обычном браузере, надеясь, что он сохранит настройки на сервере.

Если это не помогает, попробуйте сделать следующее в «обычном» браузере Internet Explorer:

  • Возможно, домен URL, который вы используете, отличается от того, с которого загружается скрипт (или: URL, с которого виджет загружает свой HTML или данные), из-за чего IE считает, что обрабатывает сторонний cookie-файл. Итак:посмотрите, что дает вам разрешение на использование сторонних файлов cookie. См. MicrosoftБлокировать, включать или разрешать файлы cookie.

  • Возможно, для установки или чтения файлов cookie в JavaScript требуются дополнительные права. Итак:посмотрите, daviker.whccs.comпоможет ли добавление в список доверенных сайтов, чтобы позволить ему сделать немного больше? См. MicrosoftЗоны безопасности: добавление или удаление веб-сайтов.

  • Возможно, сервер уже установил cookie с таким же именем, но пометил его какHttpOnly, что делает его недоступным из JavaScript.Попробуйте удалить все существующие файлы cookie «active-tabs».

Фон:

Ошибка в строке 1546сценарийсвязано с тем, что определенный файл cookie недоступен для этого скрипта, сразу после того, как тот же самый скрипт попытался установить/изменить этот файл cookie (в строке 1541, где его значение может быть на самом деле, undefinedпоскольку строка 1533 не может его проверить):

1527    restoreTabsFromTheServer: function()
1528    {
1529        $.post("xrm_ui?get=getTabs", {}, function(responce) {
1530
1531            reportTabs.tabCaptions = responce.reportPages;
1532
                // Next line only checks for an empty "openedtabs", not for
                // an undefined or null value; bad coding...
1533            if (responce.openedtabs == '')
1534            {
1535                $.cookie("active-tabs", '');
1536                reportTabs.tabidSelected = undefined;
1537                reportTabs.tabindexSelected = undefined;
                    // Next line would exit the function if we had an empty
                    // result, but not if it is undefined or null
1538                return false;
1539            }
1540
                // Next line: NO ERROR WHILE WRITING, but the new value could
                // be undefined, which might even clear an existing cookie?
1541            $.cookie("active-tabs", responce.openedtabs);
1542            reportTabs.tabidSelected = responce.tabidselected;
1543            reportTabs.tabindexSelected = responce.tabindexselected;
1544
1545            // restore tabs
                // Next line: NO RESULT WHEN READING
1546            var arr = $.cookie("active-tabs").split(',');
1547            ...

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

Я не знаю, использует ли встроенный компонент IE «обычный» браузер IE.настройкидля куки. Но я наверняка видел встроенные компоненты IEделитьсяфайлы cookie с браузером IE. (Например, при нажатии ссылок в Excel, когда IE не является браузером по умолчанию,Файлы cookie IE по-прежнему используются для некоторых целей..) Так что, возможно, изменение настроек в «обычном» браузере IE позволит JavaScript установить этот cookie-файл во встроенном компоненте.


В качестве альтернативы, возможно, значение, полученное от сервера в строке 1529, не является допустимым значением, что приводит к сбою записи или чтения. НапримерЗапятые не допускаются в куки-файлах, поэтому .split(',')выглядит подозрительно. Но тогда: мы даже не знаем, какой плагин jQuery используется для $.cookie, поэтому нам нужно гораздо больше подробностей, чтобы выяснить, использует ли он какую-то кодировку.

решение3

Для тех, кто сталкивается с подобной ситуацией в Windows 11, вы можете испытать разочарование от того, что возможность снять отметку «Отображать уведомление о каждой ошибке сценария» больше недоступна в свойствах обозревателя. Отличное решение от harrymc для изменения этого параметра через реестр также, похоже, игнорируется Internet Explorer.

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

  • Нажмите «Пуск», введите «Свойства обозревателя» и нажмите Enter.Поиск по свойствам обозревателя в меню «Пуск»
  • На вкладке «Безопасность» нажмите «Ограниченные сайты», а затем нажмите «Сайты». На вкладке «Безопасность» в разделе «Свойства обозревателя» есть зона с надписью «Ограниченные сайты», которая выглядит как знак «Вход воспрещен». Нажмите на нее, а затем нажмите кнопку «Сайты» под ней.На вкладке Безопасность в Свойствах обозревателя есть зона с надписью Ограничиваемые сайты, которая выглядит как знак запрета на вход. Щелкните по ней, а затем щелкните кнопку Сайты под ней
  • Введите веб-сайт, для которого вы хотите отключить скрипты, и нажмите «Добавить». В текстовом поле «Добавить этот веб-сайт в зону» введите веб-сайт, который вы хотите добавить (обычно без суффикса пути), и нажмите «Добавить». В случае, описанном в этой статье, веб-сайт может бытьhttps://daviker.whccs.com У вас есть возможность выбрать ранее добавленный вами веб-сайт и нажать «Удалить» для дальнейшей настройки этой зоны.В текстовом поле Добавить этот веб-сайт в зону введите веб-сайт, который вы хотите добавить (обычно без суффикса пути), и нажмите Добавить. В случае, описанном в этой статье, веб-сайт может быть https://daviker.whccs.com У вас есть возможность выбрать ранее добавленный веб-сайт и нажать Удалить, чтобы дополнительно настроить эту зону.

Нажмите Закрыть, а затем ОК.

Связанный контент