Подавление ошибки скрипта в IE8 (C ++) - PullRequest
4 голосов
/ 04 октября 2011

Я хочу, чтобы IE не отображал диалоговые окна с сообщениями об ошибках JS. Я прочитал, что это можно сделать, установив ScriptErrorsSuppressed = true.

Где именно я могу установить его в IWebBrowser2?

Спасибо

Ответы [ 5 ]

6 голосов
/ 23 декабря 2011

Просто используйте put_Silent метод.

m_pWebBrowser->put_Silent(VARIANT_TRUE);
1 голос
/ 11 ноября 2014

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

Например, если вы используете CDHtmlDialog, укажите это в OnInitDialog():

m_pBrowserApp->put_Silent(VARIANT_TRUE);

и поставьте перед LoadFromResource() вызовом.

Будьте осторожны, так как это подавит гораздо больше сообщений, чем просто ошибки JavaScript. (Подумайте об уведомлениях SSL-сертификатов.)

1 голос
/ 28 января 2014

внести изменения в пути HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE.

Software\\Microsoft\\Internet Explorer\\Main


RegSetValueEx (hKey, LPCSTR("Disable Script Debugger"), 0, REG_SZ, (BYTE*) "yes", 3);

RegSetValueEx (hKey, LPCSTR("DisableScriptDebuggerIE"), 0, REG_SZ, (BYTE*) "yes", 3);
0 голосов
/ 18 октября 2011

Быстрый и простой способ - использовать глобальное состояние для решения локальной проблемы и изменить реестр, как описано здесь (хотя Рэймонд не одобрил бы этого). Это в основном полностью деактивирует ошибки скрипта для текущего пользователя.

Резюме:

  • Раздел реестра: HKEY_CURRENT_USER \ Программное обеспечение \ Microsoft \ Internet Explorer \ Main
  • Имя значения: Отключить отладчик сценариев
  • Тип данных: REG_SZ (строковое значение)
  • Значения данных: да

Более сложным решением будет реализация IOleCommandTarget , как уже указывалось Lou .

0 голосов
/ 04 октября 2011

Документы, которые вы читаете, относятся к тому, что вы можете сделать, если встроите панель рендеринга IE HTML в собственное приложение.Они позволяют вам изменять поведение этой панели.

Если вы сделали это, то можете использовать COM для QueryInterface интерфейса IWebBrowser2 из компонента.

Подробнее здесь:

http://support.microsoft.com/kb/196340

А вот как вы обрабатываете ошибки:

http://support.microsoft.com/kb/261003

Я подозреваю, что это не то, что вы пытаетесь сделать, и что выпросто создаю веб-приложение.В этом случае вам необходимо

  1. Исправить ошибки JS
  2. Поместить весь код JS в блоки try / catch.Тогда вы не получите диалоги JS, но вам нужно самостоятельно обработать ошибку.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...