0

我的客户要求在用户登录时显示“启动画面”。目前,我的客户端使用实例化System.Windows.Forms.WebBrowser类的 Windows 应用程序来托管网页,但由于各种原因,这是不合适的。

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

在当前(不令人满意的)化身中,“否”按钮调用一个 javascript 函数,其中包括

window.close();

目前这工作正常,但显然如果(在新版本中)网页托管在 Windows 窗体内的浏览器控件中,则 window.close 不会自动冒泡到 Windows 窗体。

那么,Windows 窗体有没有办法“检测”浏览器控件中发生的 window.close 事件?

我希望上述是清楚的。

非常感谢

爱德华

4

2 回答 2

0

感谢大家。

通过一些额外的挖掘 Sudhakar B 的答案有效。我不得不添加

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

来装饰班级。

于 2013-03-15T14:23:01.487 回答
0

而不是调用 window.close 从 javascript 调用您的外部 C# 函数,像这样

window.external.CloseWindow

并将您的对象设置为脚本

webBrowser1.ObjectForScripting = this;

你的 C# 类应该有 CloseWindow 函数

或覆盖 window.close 之类的

window.close=function() { window.external.CloseWindow(); }
于 2013-03-15T11:19:39.840 回答