首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在.NET WebBrowser控件中阻止对话框

在.NET WebBrowser控件中阻止对话框
EN

Stack Overflow用户
提问于 2008-09-16 22:00:28
回答 12查看 36.5K关注 0票数 19

我有一个.NET 2.0 WebBrowser控件,用于在没有用户交互的情况下导航一些页面(不要使用ask...long故事)。由于此应用程序的无用户特性,我已将WebBrowser控件的ScriptErrorsSuppressed属性设置为true,VS 2005中包含的文档将...“隐藏其源自基础ActiveX控件的所有对话框,而不仅仅是脚本错误。”然而,MSDN article并没有提到这一点。我已经设法取消了防止弹出窗口的NewWindow事件,所以这件事已经处理好了。

有没有人有使用其中一个并成功阻止所有对话框、脚本错误等的经验?

编辑

这不是IE的独立实例,而是Windows窗体应用程序上的WebBrowser控件的实例。任何人都有使用此控件或基础控件AxSHDocVW的经验

再次编辑

抱歉我忘了提这件事..。我正在尝试阻止一个只有一个OK按钮的JavaScript ()警告。也许我可以转换成一个IHTMLDocument2对象并以这种方式访问脚本,我已经使用了一点,有人知道吗?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2008-09-19 12:58:18

这绝对是老生常谈,但如果您使用WebBrowser控件做任何工作,您会发现自己做了很多老生常谈的事情。

这是我所知道的最简单的方法。您需要注入JavaScript来覆盖警报函数...类似于注入这个JavaScript函数:

代码语言:javascript
复制
window.alert = function () { }

有很多方法可以做到这一点,但这是非常可能的。一种可能是挂接DWebBrowserEvents2接口的实现。完成此操作后,您可以插入NavigateComplete、DownloadComplete或DocumentComplete (或者,正如我们所做的那样,插入它们的一些变体),然后调用您实现的InjectJavaScript方法,该方法执行对window.alert方法的覆盖。

就像我说的,这很麻烦,但它是有效的:)

如果需要,我可以深入了解更多细节。

票数 7
EN

Stack Overflow用户

发布于 2008-10-30 19:53:47

要获得注入javascript这一神奇代码的简便方法,请阅读how to inject javascript into webbrowser control

或者只需使用以下完整代码:

代码语言:javascript
复制
private void InjectAlertBlocker() {
    HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
    HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
    string alertBlocker = "window.alert = function () { }";
    scriptEl.SetAttribute("text", alertBlocker);
    head.AppendChild(scriptEl);
}
票数 13
EN

Stack Overflow用户

发布于 2008-09-21 02:25:54

您可能需要定制一些东西,查看一下IDocHostUIHandler,然后查看一些其他相关的接口。你可以有相当多的控制,甚至到了自定义对话框显示/ui的程度(我记不起是哪个界面做了这件事)。我非常肯定您可以做您想做的事情,但这确实需要在MSHTML的内部做些工作,并能够实现各种COM接口。

其他一些想法:http://msdn.microsoft.com/en-us/library/aa770041.aspx

代码语言:javascript
复制
IHostDialogHelper
IDocHostShowUI

这些可能是您正在考虑实现的东西。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/77659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档