Определить, включен ли javascript во встроенном браузере winforms / mfc - PullRequest
1 голос
/ 13 октября 2009

У меня есть собственное (windows) приложение со встроенным веб-браузером. В настоящее время я вызываю функцию javascript из бэкэнда (c ++ / c #). Однако, если javascript отключен, это терпит неудачу, и я хотел бы предоставить механизм резервирования. Есть ли способ определить, отключен ли JavaScript?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2018

Ничего себе, использование веб-браузера под mfc - это очень неприятно, вы можете сделать это, получив IInternetSecurityManager , и проверить, разрешено ли выполнение javascript по текущей политике, если пользователь выбрал отключение javascript на его IE вам нужно будет перезаписать значение в реестре.

    HRESULT hr = CoCreateInstance(CLSID_InternetSecurityManager, NULL, 
    CLSCTX_INPROC_SERVER,IID_IInternetSecurityManager, (void**)&pSecurityMgr);

    int policy = URLPOLICY_ALLOW;

    hr = pSecurityMgr->ProcessUrlAction(L"http://www.google.com", URLACTION_SCRIPT_RUN,
    (BYTE*)&policy, sizeof(policy), NULL, 0, PUAF_TRUSTED, 0);

если hr = S_FALSE, выполнение javascript отключено ...

0 голосов
/ 13 октября 2009

В IE Web Control вы можете просто включить JavaScript. Пожалуйста, обратитесь к следующим интерфейсам, которые ваш хост должен реализовать:

  • IDocHostUIHandler
  • IDocHostShowUI
  • IInternetSecurityManager
  • IServiceProvider

Другой подход заключается в том, чтобы ваша HTML-страница запрашивала объект window.external и вызывала для него метод, который вы реализуете на своем хосте и который устанавливает флаг в true. Не вызов будет означать, что JavaScript не был выполнен.

...