【问题标题】:.NET WebBrowser control popup won't open in control.NET WebBrowser 控件弹出窗口不会在控件中打开
【发布时间】:2020-03-04 16:29:46
【问题描述】:

好的,当我单击链接以打开其 Web 应用程序时,我通过 Web 浏览器控件访问的站点想要打开一个弹出窗口。

如果我允许它通过控件弹出它当然只是打开一个新的 IE 窗口并且不保留会话。我尝试手动导航到该链接,并尝试使用 Microsoft Internet Controls NewWindow 事件处理它并按照本文中的建议进行重定向: Popup window webbrowser control

如果我尝试传入 TargetFrameName、PostData、Headers 等 - 我会收到以下错误: 对 COM 组件的调用已返回错误 HRESULT E_FAIL。

但是,无论我如何打开窗口,Web 应用程序都会弹出消息 - “您正在查看的网页正在尝试关闭窗口。”即使我在此弹出窗口上单击“否”,该站点仍会关闭。

关于如何禁用导致窗口关闭的 javascript 或处理弹出窗口的替代方法的任何想法?

谢谢!

【问题讨论】:

    标签: c# .net winforms webbrowser-control


    【解决方案1】:

    如果你使用如下界面:

    SHDocVw.WebBrowser
    

    您可以附加到一个名为:

    NewWindow2
    

    当您形成加载时,只需声明以下变量并添加事件:

    确保您有一个带有浏览器控件的表单。

    您应该能够在以下程序集中找到对接口的引用:Interop.SHDocVw

    SHDocVw.WebBrowser nativeBrowser = webBrowser1.ActiveXInstance;
    nativeBrowser.NewWindow2 += (ref object ppDisp, ref bool Cancel) => 
    { 
        var frm = new frmWithBrowser();
        frm.Show(this);
        ppDisp = frm.webBrowser1.ActiveXInstance;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      相关资源
      最近更新 更多