本人实现了一个HTML View, 但是在访问到一些网站的时候会有脚本错误出现,于是一次又一次的弹出错误对话框,令人不胜其烦,向各位达人请教如何屏蔽掉脚本错误的提示。区区100分,不成敬意,望不吝赐教。

解决方案 »

  1.   

    在CHtmlControlSite::XOleCommandTarget::Exec函数中
    HRESULT hr = S_OK;
    try
    {
    if (pguidCmdGroup && IsEqualGUID(*pguidCmdGroup, CGID_DocHostCommandHandler))
    {
             
    if(nCmdID == 40)//OLECMDID_SHOWSCRIPTERROR
    {
    (*pvaOut).vt = VT_BOOL;
    // Continue running scripts on the page.
    (*pvaOut).boolVal = VARIANT_TRUE;
          
    return hr;
    }

    }
    }
    catch(...)
    {
    } return OLECMDERR_E_NOTSUPPORTED;
    ==========================================
     你不能奢望同时是伟大的而又是舒适的。——巴里
     CSDN助手 签名走马灯
      

  2.   

    谢谢seasol的回答,这样的话是不是我一定要去实现这个函数呢?我只是使用一下HTML View 而已阿,最主要的是,我不是很清楚应该把这个函数怎样声明出来,是要自己重载CHTMLView的Exec函数当它得到的command id 是对应的时候就拦截么?如果不是,那么CHtmlControlSite::XOleCommandTarget::Exec 应该在哪里或者怎么来实现呢?再次感谢seasol。
      

  3.   


    if (m_pBrowserApp != NULL)
     {
      CComPtr<IDispatch> spDisp = GetHtmlDocument();
      if (spDisp != NULL)
      {
       CComQIPtr<IOleCommandTarget> spTarget = spDisp;
       if (spTarget != NULL)
        spTarget->Exec(。);
           }
    }
    http://support.microsoft.com/default.aspx?scid=kb;en-us;261003
      

  4.   

    谢谢lixiaosan,你给出了一个非常好的方法,不过我不是想自己来调用exec方法,相反我希望能通过调用某个方法或者某种实现方式来消除脚本错误对话框,你给出了一个非常好的资源地址,我需要花一些时间来看一下。到现在为止,基本上了解了一些解决方案,不过如果有其他方法的也希望大家告诉我。
      

  5.   

    leafsax(aobing) 
    你是怎么解决这个问题的?
    如何屏蔽脚本错误呢?
    没看懂谢谢