代码之家  ›  专栏  ›  技术社区  ›  herbrandson

检测是否在winforms/mfc嵌入式浏览器中启用了javascript

  •  1
  • herbrandson  · 技术社区  · 15 年前

    我有一个内置Web浏览器的本机(Windows)应用程序。目前,我正在从后端调用一个JavaScript函数(c++/c*)。但是,如果禁用了javascript,这将失败,我希望提供一个回退机制。是否有方法确定是否禁用了javascript?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Alexander Gräf    15 年前

    在IE Web控件中,您可以简单地强制启用javascript。请参考您的主机必须实现的以下接口:

    • 伊多乔斯图伊汉德勒
    • iDoCotoStCuUI
    • iInternetSecurityManager(InternetSecurityManager)
    • ISeviceProvider(ISeviceProvider)

    另一种方法是让HTML页面查询window.external对象并对其调用一个方法,该方法在宿主中实现,并将标志设置为true。不被调用意味着没有执行javascript。

        2
  •  0
  •   Proxytype    6 年前

    哇,在MFC下使用网络浏览器真的很痛苦,你可以通过 IInternetSecurityManager ,并检查当前策略是否允许执行javascript,如果用户选择在其IE上禁用javascript,则需要覆盖注册表中的值。

        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执行…