C# - 当网页上的javascript调用window.close()时关闭System.Windows.Forms.WebBrowser

时间:2015-08-05 21:22:31

标签: javascript c# winforms visual-studio-2012 expression-blend

我在C#System.Windows.Forms.WebBrowser上启动了一个网站,在网站上执行任务后,该网站的javascript调用了一个由以下内容组成的函数:

Name Month Sales
C    M1  6990
C    M2  5624
C    M3  7236
C    M4  5899
D    M1  3541
D    M2  9299
D    M3  3627
D    M4  8523

Closer.html包含:

window.open("Closer.html", '_self');

这适用于IE或Chrome等外部浏览器。但我的winforms浏览器仍然是开放的。我对此进行了研究,发现其他人遇到了这个问题,并且无法找到解决方案。

我想要我的C#System.Windows.Forms.WebBrowser类检测到javascript函数window.close()已被调用,然后执行一个简单的this.close()调用,或者我可以修改javascript Closer.html以关闭System.Windows.Forms.WebBrowser窗口,如果可以的话。

1 个答案:

答案 0 :(得分:2)

试一试。将浏览器设置为允许导航。来自设计师或代码。

wb.AllowNavigation = true;

然后,查看是否触发了此事件:

private void wb_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
    if (e.Url.AbsolutePath.IndexOf("closer.html", StringComparison.OrdinalIgnoreCase) > 1)
        this.Close();
}

显然,您需要连接导航事件。再次,通过设计师或通过代码。

wb.Navigating += wb_Navigating;

编辑:这应该适用于您的具体情况,但我确实看到一个很好的答案发布在类似的问题上。

How can I be notified when a window is closed by window.close (javascript)?

使用在那里找到的代码,并修改html,你应该能够处理这个问题。你可以调用window.close()来代替重定向。然后,web浏览器应该注意并采取相应的行动。