【问题标题】:Web Browser Control prevent Are you sure you want to leave this pageWeb 浏览器控制阻止您确定要离开此页面
【发布时间】:2017-01-01 23:14:51
【问题描述】:

我有一个用于导航到另一个页面的应用程序,一种网络浏览器,问题是对于某些网页它说“你确定要离开这个页面吗?”对话。我想完全删除它。它应该在没有此对话的情况下开始导航。我试过了,

WebBrowser.ScriptErrorsSuppressed = True

截图:http://image.prntscr.com/image/5d1adcbd60794f22b5ad7baf736b29f2.png

我也尝试禁用 javascript,但没有成功。任何帮助,将不胜感激。

【问题讨论】:

  • 什么应用程序?我很确定该对话框不是“脚本错误”,因此此设置对您没有帮助。
  • 申请是为了增加我博文的浏览量。因此它停止了。
  • 好吧,一个例子是,如果你打开 facebook 并写一些消息,然后尝试刷新浏览器,它会显示这个消息。在 Internet Explorer 中尝试。这只是一个示例,还有许多其他网站会阻止您在没有此弹出窗口的情况下进行导航。我已经添加了截图。请检查一下。
  • window.onbeforeunload = null; 可能是你的朋友,因为它是 JavaScript...
  • @kayess:谢谢伙计!这是正确的答案。我已经注入了这个javascript并且像一个魅力一样工作。再次感谢你。 :)

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


【解决方案1】:

JavaScript onbeforeunload 事件负责处理此类消息。通过将其设置为 null 为:

window.onbeforeunload = null;

您可以阻止其处理程序代码运行。

【讨论】:

    【解决方案2】:

    这将起作用:

    Dim doc As HtmlDocument = WebBrowser1.Document
    Dim head As HtmlElement = doc.GetElementsByTagName("head")(0)
    Dim s As HtmlElement = doc.CreateElement("script")
    s.SetAttribute("text", "function cancelOut() { window.onbeforeunload = null; }")
    head.AppendChild(s)
    WebBrowser1.Document.InvokeScript("cancelOut")
    

    【讨论】:

      【解决方案3】:

      您需要使用here 中不安全的原生方法来拦截新窗口事件

      【讨论】:

        猜你喜欢
        • 2010-10-04
        • 2012-03-12
        • 2017-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-08
        • 2016-12-31
        • 1970-01-01
        相关资源
        最近更新 更多