在 WebBrowser 控件中禁用警报窗口
Posted
技术标签:
【中文标题】在 WebBrowser 控件中禁用警报窗口【英文标题】:Disabling alert window in WebBrowser control 【发布时间】:2011-07-25 01:00:45 【问题描述】:我正在使用 VS 2005 和 WebBrowser 控件。当我使用组件导航到指定页面时,我收到场景错误,例如“在此页面上 javascript 场景错误”和两个按钮:是或否执行场景。如何阻止警报窗口并在没有此消息的情况下继续浏览?
【问题讨论】:
是否要禁用脚本错误?还是想禁用确认框? 我想禁用确认框。 我认为不可能。 :( 这是IE的设置。您可以在浏览器选项中自行更改 【参考方案1】:试试
WebBrowser1.ScriptErrorsSuppressed = true;
【讨论】:
【参考方案2】:试试这个
htmlElement head = WebBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = WebBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
string alertBlocker = @"window.alert = function () ; window.confirm=function () ;";
element.text = alertBlocker;
head.AppendChild(scriptEl);
WebBrowser1.ScriptErrorsSuppressed = true;
来源: http://moshez.blogspot.co.il/2013/08/c-disable-alert-box-javascript-in-c.html
【讨论】:
很好,很好。我不知道为什么以前的答案被接受并被高度评价?这是值得接受的。 Farzin 所说的在一定程度上是正确的。除了; OP 并没有要求抑制警报。他要求抑制 JS 错误弹出窗口。 Moshes 修复适用于警报。【参考方案3】: Private Sub WebBrowser1_StatusTextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.StatusTextChanged
On Error Resume Next
Dim head As HtmlElement = WebBrowser1.Document.GetElementsByTagName("head")(0)
Dim script As HtmlElement
script = WebBrowser1.Document.CreateElement("script")
script.SetAttribute("type", "text/javascript")
Dim alertBlocker As String = "window.alert = function () ; window.confirm=function () ; "
script.SetAttribute("text", alertBlocker)
head.AppendChild(script)
End Sub
【讨论】:
VB C#... 土豆土豆。反正都是.NET :)以上是关于在 WebBrowser 控件中禁用警报窗口的主要内容,如果未能解决你的问题,请参考以下文章