Web浏览器控件 - 检测js window.close何时被调用

5 .net c# webbrowser-control winforms

我一直在寻找很多小时但找不到合适的解决方案.

当调用js函数关闭窗口时,我的c#webbrowser控件(winforms应用程序的一部分)会冻结.

我可以捕获一个js window.close事件吗?

我找到的最接近的解决方案如下,但它不起作用(编译器不会抛出错误):

HtmlDocument htmlDocument = this.webBrowser1.Document;
htmlDocument.Window.Unload += new HtmlElementEventHandler(Window_Unload);
Run Code Online (Sandbox Code Playgroud)

方法:

    void Window_Unload(object sender, HtmlElementEventArgs e)
    {
      MessageBox.Show("Display me when webbrowser control is disposed");
    }
Run Code Online (Sandbox Code Playgroud)

这只是我的第二个c#程序,也是我第一次无法找到自己的工作解决方案.

nos*_*tio 0

WebBrowser在由 WinFroms 控件包装的原始ActiveX 控件中WebBrowser,有一个WindowClosing用于此目的的事件。不幸的是,由于某些我们无法控制的原因,它不会被 WinForms 包装器触发

此处描述了一种可能的解决方法。另一种解决方法依赖于 DOM 在被调用window.onunload时总是被触发的事实。window.close()你应该计算出相应的WebBrowser状态转换。导航windows.closerefresh/之间的转换是不同的F5。更多信息请点击这里