我有一个IWebBrowser2用于访问一些带有.Navigate()的网页 当页面出现js错误时,我收到了“语法错误”的警告框,因此我使用了.put_Silent(TRUE)。现在我收到“VS Just-In-Time Debugger:Unhandled exception”的警告,而不是
如何从我的代码中禁用所有脚本错误警告(包括JIT调试器)(我的意思是不修改真实的IE设置)?
答案 0 :(得分:3)
您可以通过覆盖控制它的注册表设置来禁用脚本调试。正确的方法是实现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
注册表项,然后创建名为Disable Script Debugger
的字符串值,其值为yes
。