假设我打开一个新的 Internet Explorer 窗口,例如,单击 HTML 链接中带有 target="_blank" 的链接。进一步假设我通过 COM 以编程方式这样做。我意识到我可以附加到 DWebBrowserEvents2::NewWindow3 事件,并在打开新窗口时收到通知。如何获得对那个新打开的窗口的引用,以便我也可以操作它?
注意事项:
- 如果可以的话,我特别不想取消 NewWindow 事件并在 ppDisp 参数中实例化并返回一个新的空白浏览器窗口。
- 我考虑过搜索每个 IE 窗口(使用 FindWindow 或类似的),询问它的位置,并将其与 bstrUrl 参数进行比较,但我认为如果目标中有重定向,这将不起作用。
- 这是一个自动化测试框架,所以我专门驱动 Internet Explorer,而不是托管的 WebBrowser 控件。
- 我完全知道这不会找到由 showModalDialog() 创建的窗口。