我正在使用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时,这通常是由于模态对话框而停用浏览器...
现在,我需要知道的是如何获取该模态对话框对象。任何帮助将不胜感激
答案 0 :(得分:0)
原来这一切都取决于您的Windows UAC设置。出于安全原因,当您的UAC设置为中或更高时,UAC会阻止访问模式对话框。降低这些设置允许通过NewWindow事件
完全访问模态对话框