Ошибка JavaScript во встроенном Internet Explorer
У меня есть настройка настенного дисплея для отображения статистики в офисе, однако виджет, который использует встроенный Internet Explorer, продолжает выдавать ошибку JavaScript.
Ошибка может быть закрыта, не вызывая проблем, но она раздражает, так как она повторяется каждые 2-3 раза в день, и когда это происходит, она останавливает кого-либо от просмотра статистики, пока она не будет закрыта удаленным доступом к настенному экрану. В обычном Internet Explorer это можно легко остановить, сняв флажок ниже.
Мой вопрос: как отключить всплывающее окно с сообщением об ошибке скрипта в Internet Explorer, встроенном в мой виджет?
Изменить: Ответ на ответ от Harrymc
Я теперь отредактировал эти настройки, используя regedit согласно инструкциям harrymc, однако ошибка все еще появляется.
3 ответа
Как вы можете редактировать реестр, в следующей статье перечислены многие настройки 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"
В этом конкретном случае вместо того, чтобы пытаться скрыть ошибку, вы можете полностью ее избежать (или укажите вашему поставщику на этот пост, чтобы исправить их JavaScript):
- Возможно, сервер вообще не возвращает значения для "открытых вкладок" в приведенном ниже JavaScript; попробуйте изменить настройки вкладок виджета, чтобы заставить сервер установить какое-либо значение. Если вы не можете сделать это на настенном экране, попробуйте в обычном браузере, надеясь, что это сохранит настройки на сервере.
Если это не помогает, попробуйте следующее в "обычном" браузере Internet Explorer:
Возможно, домен URL-адреса, который вы используете, отличается от домена, из которого загружается скрипт (или: URL-адрес, с которого виджет загружает свой HTML или данные), из-за чего IE чувствует, что обрабатывает сторонние файлы cookie. Итак: посмотрите, что дает вам разрешение на использование сторонних файлов cookie . См. Блокировку, включение или разрешение файлов cookie от Microsoft.
Возможно, установка или чтение файлов cookie в JavaScript требует дополнительных прав. Итак: посмотрите, если добавить
daviker.whccs.com
на доверенные сайты помогает , разрешить это сделать еще немного? См. Зоны безопасности Microsoft : добавление или удаление веб-сайтов .Возможно, сервер уже установил cookie с тем же именем, но пометил его как HttpOnly , что делает его недоступным из JavaScript. Попробуйте удалить все существующие файлы cookie "активных вкладок" .
Фон:
Ошибка в строке 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 для файлов cookie. Но я наверняка видел, как встроенные компоненты IE делят куки с браузером IE. (Как и при нажатии на ссылки в Excel, когда IE не является браузером по умолчанию, cookie-файлы IE по-прежнему используются для некоторого обнаружения .) Поэтому, возможно, изменение настроек в "обычном" браузере IE позволит JavaScript установить этот cookie во встроенном компоненте.
† В качестве альтернативы, возможно, значение, полученное с сервера в строке 1529, не является допустимым значением, что приводит к ошибке записи или чтения. Как запятые не допускаются в печенье , поэтому .split(',')
выглядит подозрительно Но потом: мы даже не знаем, какой плагин jQuery используется для $.cookie
, поэтому нам нужно было бы гораздо больше деталей, чтобы выяснить, использует ли оно некоторую кодировку.
Любой, кто сталкивается с подобным случаем в Windows 11, может испытывать разочарование из-за того, что возможность снять флажок «Отображать уведомление о каждой ошибке сценария» больше не доступна в «Свойствах обозревателя». Превосходное решение от harrymc по изменению этого параметра через реестр также, похоже, теперь игнорируется Internet Explorer.
Если вы просто пытаетесь избежать раздражающего запроса от определенного приложения, которое вызывает определенный URL-адрес, одним из возможных решений является полное запрещение запуска сценариев на этом веб-сайте (если это не нарушает функциональность вашего приложения). Самый простой способ добиться этого заключается в следующем:
- Нажмите «Пуск», введите «Свойства обозревателя» и нажмите Enter.
- На вкладке «Безопасность» нажмите «Ограниченные сайты», а затем нажмите «Сайты». На вкладке «Безопасность» в разделе «Свойства обозревателя» есть зона с надписью «Ограниченные сайты», которая выглядит как знак «вход запрещен». Нажмите на нее, а затем нажмите кнопку «Сайты» под ней.
- Введите веб-сайт, для которого вы хотите отключить скрипты, и нажмите «Добавить». В текстовом поле «Добавить этот веб-сайт в зону» введите веб-сайт, который вы хотите добавить (обычно без суффикса пути), и нажмите «Добавить». В случае, описанном в этой статье, веб-сайтом может быть https://daviker.whccs.com. У вас есть возможность выбрать ранее добавленный веб-сайт и нажать «Удалить», чтобы продолжить настройку этой зоны.
Нажмите «Закрыть», а затем «ОК».