我有一个.NET 2.0 WebBrowser控件,该控件用于在没有用户交互的情况下导航某些页面(不要问…长话短说)。由于此应用程序的用户较少,因此我将WebBrowser控件的ScriptErrorsSuppressed属性设置为true,VS 2005状态随附的文档将隐藏所有来自基础ActiveX控件的对话框,不只是脚本错误。” 但是,MSDN文章没有提到这一点。我设法取消了NewWindow事件,该事件可以防止弹出窗口,因此已经解决了这个问题。
任何人都有使用其中一种方法并成功阻止 所有 对话框,脚本错误等的经验吗?
编辑
这不是IE的独立实例,而是Windows Form应用程序上的WebBrowser控件的实例。任何人都具有使用此控件的经验,或者具有基础控件 AxSHDocVW的经验 ?
再次编辑
抱歉,我忘了提及这一点…我试图仅使用OK按钮来阻止 JavaScript alert() 。也许我可以转换为IHTMLDocument2对象并以这种方式访问脚本,我已经使用了MSHTML一点,有人知道吗?
这绝对是很棘手的,但是如果您使用WebBrowser控件进行任何工作,您都会发现自己在做很多棘手的事情。
这是我所知道的最简单的方法。您需要注入JavaScript以覆盖警报功能…注入此JavaScript函数的过程如下:
window.alert = function () { }
有 很多方法可以做到这一点 ,但这是很有可能的。一种可能性是挂钩DWebBrowserEvents2接口的实现。完成此操作后,您可以将其插入NavigateComplete,DownloadComplete或DocumentComplete(或我们的一些变体)中,然后调用已实现的InjectJavaScript方法来执行对窗口的覆盖。方法。
就像我说的,hacky,但是它可以用:)
如果需要,我可以详细介绍。