首页 文章

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

提问于
浏览
1

我有一个本机(Windows)应用程序,具有嵌入式Web浏览器 . 目前我正在从后端调用javascript函数(c / c#) . 但是,如果禁用了javascript,则会失败,我想提供一个回退机制 . 有没有办法确定javascript是否被禁用?

2 回答

  • 0

    在IE Web Control中,您只需强制启用JavaScript即可 . 请参阅以下接口,主机必须实现这些接口:

    • IDocHostUIHandler

    • IDocHostShowUI

    • IInternetSecurityManager

    • IServiceProvider

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

  • 0

    哇,在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执行...

相关问题