我的客户端要求在用户登录时显示“启动”屏幕。目前,我的客户端使用Windows应用程序来实例化 System.Windows.Forms.WebBrowser 类来托管网页,但由于各种原因,这是不合适的。
我的客户要求我创建一个不含铬的模态Windows窗体,其中包含一个将托管该网页的浏览器控件。此页面包含一条消息和两个按钮:“是”(导航到另一个URL)和“否”(关闭浏览器)。
在当前(不满意)的化身中,“否”按钮调用包含
的javascript函数window.close();
此刻工作正常,但很明显,如果(在新版本中)网页托管在Windows窗体内的浏览器控件中,则window.close不会自动冒泡到Windows窗体。
那么,Windows窗体是否有办法“检测”浏览器控件中发生的window.close事件?
我希望前面的内容很清楚。
非常感谢
爱德华
答案 0 :(得分:0)
而不是调用window.close从javascript中调用外部C#函数,类似这样
window.external.CloseWindow
并将您的对象设置为脚本
webBrowser1.ObjectForScripting = this;
你的C#类应该有CloseWindow函数
或覆盖window.close,如
window.close=function() { window.external.CloseWindow(); }
答案 1 :(得分:0)
谢谢大家。
通过一些额外的挖掘,Sudhakar B的答案有效。我不得不添加
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
装饰班级。