【发布时间】:2011-06-20 20:56:33
【问题描述】:
我正在使用 C#、MSHTML 和 InternetExplorer 对象来运行网页,但我遇到了一个问题。
基本上,我注意到在 IE7 或更早版本中,当调用 window.showModalDialog 时,会触发 NewWindow3 事件。
在 IE8 和 IE9 中,NewWindow3 永远不会被触发。正如 MSDN 所写:“NewWindow3 事件仅在即将创建 Internet Explorer 的新实例时触发。调用 showModalDialog 或 showModelessDialog 不会触发事件,因为它们不是 Internet Explorer 的新实例。它们被实现为 MSHTML 主机窗口,这允许他们呈现和显示 HTML 内容,但不能呈现和显示文档之间的超链接。” (http://msdn.microsoft.com/en-us/library/aa768337(v=VS.85).aspx)
我能够接近捕获被触发的模态对话框的唯一方法 - 但我无法访问实际的模态对象 - 是使用 WindowStateChanged 事件。该事件通常会被调用,但我注意到当 dwFlags == 1 和 dwValidFlagsMask==3 时,这通常是由于模式对话框而停用浏览器时...
现在,我只需要知道如何获取该模态对话框对象。任何帮助将不胜感激
【问题讨论】:
标签: c# internet-explorer modal-dialog mshtml