2

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

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

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

Изменить: Ответ на ответ от Harrymc

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

2 ответа2

2

Как вы можете редактировать реестр, в следующей статье перечислены многие настройки 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; попробуйте изменить настройки вкладок виджета, чтобы заставить сервер установить какое-либо значение. Если вы не можете сделать это на настенном экране, попробуйте в обычном браузере, надеясь, что это сохранит настройки на сервере.

Если это не помогает, попробуйте следующее в "обычном" браузере 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 не является браузером по умолчанию, куки-файлы IE все еще используются для некоторого обнаружения.) Так что, возможно, изменение настроек в "обычном" браузере IE позволит JavaScript установить этот cookie во встроенном компоненте.


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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .