Определите, включен ли javascript во встроенном браузере winforms / mfc

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

12.10.2009 23:24:03
2 ОТВЕТА
РЕШЕНИЕ

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

  • IDocHostUIHandler
  • IDocHostShowUI
  • IInternetSecurityManager
  • IServiceProvider

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

0
12.10.2009 23:58:01
IInternetSecurityManager был именно тем, что мне было нужно. Я нашел хорошее объяснение того, как реализовать это здесь ... social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/…
herbrandson 13.10.2009 22:09:00

Ничего себе, использование веб-браузера под 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
16.04.2018 12:37:51