我可以检测到一个jscript窗口.在托管在Windows窗体中的浏览器控件中关闭事件

Can I detect a jscript window.close event in a browser control hosted in a Windows form?

本文关键字:检测 窗体 Windows 浏览器 控件 事件 一个 我可以 窗口 jscript      更新时间:2023-09-26

我的客户端要求在用户登录时显示"闪屏"屏幕。目前我的客户端使用一个Windows应用程序实例化一个System.Windows.Forms。WebBrowser类来承载一个网页,但由于各种原因,这是不合适的。

我的客户要求我创建一个无铬模态窗体,将包含一个浏览器控件,将托管网页。此页面由一条消息和两个按钮组成:"是"(导航到另一个URL)和"否"(关闭浏览器)。

在当前(不令人满意的)版本中,"否"按钮调用包含

的javascript函数
window.close();

这工作良好的时刻,但显然,如果(在新的化身)的网页是托管在一个浏览器控件内的Windows窗体,那么窗口。close不会自动弹出Windows窗体

那么,有没有办法让Windows窗体"检测"到窗口呢?关闭浏览器控件中发生的事件?

我希望上述内容是清楚的。

多谢爱德华

而不是调用window。从javascript调用外部c#函数,像这样

window.external.CloseWindow

并将对象设置为scripting

webBrowser1.ObjectForScripting = this;
你的c#类应该有CloseWindow函数

或覆盖窗口。亲密的像

window.close=function() { window.external.CloseWindow(); }

谢谢大家。

经过一些额外的挖掘,Sudhakar B的答案是有效的。我必须加上

   [System.Runtime.InteropServices.ComVisibleAttribute(true)]