HTMLVIEW中打开网页,填表提交后 出现脚本错误提示 “当前的网页脚本发生错误”请问如何不让这种提示出现

解决方案 »

  1.   

    第一个方案  
    SetSilent(TRUE);
    如果第一个方案不行
    上这段代码
    //屏蔽IE的错误窗口
    void CSimOOView::OnNavigateComplete2(LPCTSTR strURL)
    {
    // TODO: 在此添加专用代码和/或调用基类
    CComPtr<IDispatch>   spDisp   =   GetHtmlDocument();  if(spDisp   !=   NULL) 

    CComPtr<IHTMLDocument2> doc;
    spDisp->QueryInterface(IID_IHTMLDocument2, reinterpret_cast<void**>(&doc));
    if(doc != NULL)
    {   
    IHTMLWindow2 * pIhtmlwindow2 = NULL;
    doc->get_parentWindow(&pIhtmlwindow2);
    if(pIhtmlwindow2 != NULL)
    {
    //屏蔽javascript脚本错误的javascript脚本
    //CString strJavaScriptCode = "function fnOnError(msg,url,lineno){alert('script error:\\n\\nURL:'+url+'\\n\\nMSG:'+msg +'\\n\\nLine:'+lineno);return true;}window.onerror=fnOnError;";
    //CString strJavaScriptCode = "function fnOnError(msg,url,lineno){alert('script error:\\n\\nURL:'+url+'\\n\\nMSG:'+msg +'\\n\\nLine:'+lineno);return true;}";
    CString strJavaScriptCode = "function fnOnError(msg,url,lineno){return true;}window.onerror=fnOnError;"; //TRACE("%s\n" , strJavaScriptCode);
    BSTR bstrScript = strJavaScriptCode.AllocSysString();
    CString strLanguage("JavaScript");
    BSTR bstrLanguage = strLanguage.AllocSysString();
    long lTime = 1 * 1000;
    long lTimeID = 0; VARIANT varLanguage;
    varLanguage.vt = VT_BSTR;
    varLanguage.bstrVal = bstrLanguage;
    VARIANT pRet;
    //把window.onerror函数插入入当前页面中去
    pIhtmlwindow2->execScript(bstrScript, bstrLanguage, &pRet);
    ::SysFreeString(bstrScript);
    ::SysFreeString(bstrLanguage);
    pIhtmlwindow2->Release();
    }
    }
    }
    CHtmlView::OnNavigateComplete2(strURL);
    }