我想防止 IE 显示 JS 错误对话框,我读到可以通过设置 ScriptErrorsSuppressed = true 来完成。
我在 IWebBrowser2 中究竟在哪里设置它?
谢谢
我想防止 IE 显示 JS 错误对话框,我读到可以通过设置 ScriptErrorsSuppressed = true 来完成。
我在 IWebBrowser2 中究竟在哪里设置它?
谢谢
只需使用put_Silent方法。
m_pWebBrowser->put_Silent(VARIANT_TRUE);
改变HKEY_CURRENT_USER
和HKEY_LOCAL_MACHINE
路径。
Software\\Microsoft\\Internet Explorer\\Main
RegSetValueEx (hKey, LPCSTR("Disable Script Debugger"), 0, REG_SZ, (BYTE*) "yes", 3);
RegSetValueEx (hKey, LPCSTR("DisableScriptDebuggerIE"), 0, REG_SZ, (BYTE*) "yes", 3);
如前所述,使用该put_Silent()
方法打开或关闭错误报告。
例如,如果使用 a CDHtmlDialog
,请将其放入您的OnInitDialog()
:
m_pBrowserApp->put_Silent(VARIANT_TRUE);
并将其放在通话之前LoadFromResource()
。
不过要小心,因为这会抑制更多消息,而不仅仅是 JavaScript 错误。(想想 SSL 证书通知。)
您正在阅读的文档是指如果您在自己的应用程序中嵌入 IE HTML 呈现窗格可以做什么。它们允许您更改该窗格的行为。
如果您已经这样做了,那么您可以使用 COM 从组件中查询 IWebBrowser2 接口。
在这里查看更多:
http://support.microsoft.com/kb/196340
以下是您处理错误的方式:
http://support.microsoft.com/kb/261003
我怀疑这不是你想要做的,你只是在制作一个网络应用程序。在这种情况下,您需要
快速简便的方法是使用全局状态来解决本地问题并按照此处所述修改注册表(尽管Raymond 不赞成这样做)。这基本上为当前登录的用户完全停用了脚本错误。
概括:
REG_SZ
字符串值)正如Lou已经指出的,更复杂的解决方案是实现IOleCommandTarget。