3,245
社区成员
发帖
与我相关
我的任务
分享
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){}window.onerror=fnOnError;"过后,原样显示,我希望有错都不显示,如何处理!
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();
}
}
}
void CZCSoftView::OnNavigateComplete2(LPCTSTR strURL)
{
// TODO: Add your specialized code here and/or call the base class
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)
{//"function fnOnError(msg,url,lineno){alert('script error:\\n\\nURL:'+url+'\\n\\nMSG:'+msg +'\\n\\nLine:'+lineno);return true;}window.onerror=fnOnError;";
//屏蔽javascript脚本错误的javascript脚本
CString strJavaScriptCode = "function fnOnError(){return true;}window.onerror=fnOnError;";
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);
}
//修改注册表,不让ie弹出 js 的脚本错误
void ChangeIERegedit()
{
TCHAR szExeFileName[MAX_URLSTRING];
_tcscpy(szExeFileName, _T("yes"));
HKEY hKEY;
DWORD disp/* = REG_OPENED_EXISTING_KEY*/;//
LONG lResult = ::RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Internet Explorer\\Main"),\
0, NULL, REG_OPTION_NON_VOLATILE, KEY_READ | KEY_WRITE, NULL, &hKEY, &disp);
if(lResult == ERROR_SUCCESS)
{
::RegSetValueEx(hKEY, _T("Disable Script Debugger"), 0,REG_SZ, (CONST BYTE*)szExeFileName,
#ifdef _UNICODE
lstrlenW(szExeFileName)*2+2
#else
lstrlenA(szExeFileName)+1
#endif
);
::RegFlushKey(hKEY);
::RegCloseKey(hKEY);
}
LONG lResultIE = ::RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Internet Explorer\\Main"),\
0, NULL, REG_OPTION_NON_VOLATILE, KEY_READ | KEY_WRITE, NULL, &hKEY, &disp);
if(lResultIE == ERROR_SUCCESS)
{
::RegSetValueEx(hKEY, _T("DisableScriptDebuggerIE"), 0,REG_SZ, (CONST BYTE*)szExeFileName,
#ifdef _UNICODE
lstrlenW(szExeFileName)*2+2
#else
lstrlenA(szExeFileName)+1
#endif
);
::RegFlushKey(hKEY);
::RegCloseKey(hKEY);
}
if((lResult != ERROR_SUCCESS) || (lResultIE != ERROR_SUCCESS))
{
CString strText, strCaption;
strText.LoadString(IDS_STR_REGIT);
strCaption.LoadString(IDS_STR_HINT);
MsgTaskbarNotifier(0, strText);
}
}