我在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窗口,如果可以的话。
答案 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浏览器应该注意并采取相应的行动。