如何在BHO的BeforeNavigate2事件中及时获得IE窗口URL?
[背景]
测试网页:
URL1:http://www.x.x/test.html
test.html的内容是:<iframe src="URL2"></iframe>
BHO的要求: 当IE加载test.html时,会访问URL2,此时需要对比URL1和URL2,如果这两个URL的host不同,则阻断原IE窗口对这个iframe的加载,然后创建一个新的IE窗口去访问URL2。
[基本想法]
我在BHO中,对BeforeNavigate2事件进行处理。当BeforeNavigate2事件触发时会得到一个将要浏览的URL,只要拿到浏览器窗口的URL就可以进行判断。
[问题]
我首先尝试通过IEThis.LocationURL获得IE窗口的URL,但是后来发现:当iframe触发BeforeNavigate2事件时,URL1还没有被写到LocationURL中;
然后尝试通过IEThis.HWND句柄获取IE窗口的Edit组件中的值,测试结果证明,从Edit中拿到的值与LocationURL是一样的...;
后来在无奈之下尝试了DDE,这个倒是能及时获得窗口上的URL,但是会产生额外的浏览事件 -- IE会试图访问WWW_GetWindowInfo这个地址。
实在没辙了,向大家求教其它能够及时得到IE窗口的方法:-)