【问题标题】:Disabling alert window in WebBrowser control在 WebBrowser 控件中禁用警报窗口
【发布时间】:2011-07-25 01:00:45
【问题描述】:

我正在使用 VS 2005 和 WebBrowser 控件。当我使用组件导航到指定页面时,我收到场景错误,例如“在此页面上 javascript 场景错误”和两个按钮:是或否执行场景。如何阻止警报窗口并在没有此消息的情况下继续浏览?

【问题讨论】:

  • 是否要禁用脚本错误?还是想禁用确认框?
  • 我想禁用确认框。
  • 我认为不可能。 :(
  • 这是IE的设置。您可以在浏览器选项中自行更改

标签: c# .net winforms webbrowser-control javascript


【解决方案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 :)
    猜你喜欢
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多