我有一个 IWebBrowser2 我用 .Navigate() 访问一些网页 当页面出现 js 错误时,我收到“语法错误”的警告框,所以我使用了 .put_Silent(TRUE)。现在我收到“VS Just-In-Time Debugger: Unhandled exception”的警告
如何从我的代码中禁用所有脚本错误警告(包括 JIT 调试器)(我的意思是不修改真正的 IE 设置)?
我有一个 IWebBrowser2 我用 .Navigate() 访问一些网页 当页面出现 js 错误时,我收到“语法错误”的警告框,所以我使用了 .put_Silent(TRUE)。现在我收到“VS Just-In-Time Debugger: Unhandled exception”的警告
如何从我的代码中禁用所有脚本错误警告(包括 JIT 调试器)(我的意思是不修改真正的 IE 设置)?
您可以通过覆盖控制它的注册表设置来禁用脚本调试。正确的方法是实现IDocHostUIHandler接口,特别是IDocHostUIHandler::GetOptionKeyPath或IDocHostUIHandler::GetOverrideKeyPath方法。使用 GetOptionKeyPath 忽略所有用户的 IE 设置(例如,字体大小)并使用 IE 默认值,或使用 GetOverrideKeyPath 使用大多数用户的 IE 设置但覆盖少数特定设置。
上面链接的 MSDN 文章包含有关如何使用此接口的良好文档,以及 IDocHostUIHandler 接口及其方法的示例实现。
假设您的 GetOptionKeyPath 方法"SOFTWARE\MyCompany\MyApp\IE"
作为新的注册表路径返回。要确保禁用脚本调试,您需要创建HKEY_CURRENT_USER\Software\MyCompany\MyApp\IE\Main
注册表项,然后创建一个名为 value 的字符串Disable Script Debugger
值yes
。