NavigateComplete2事件和重定向

时间:2012-11-21 01:17:14

标签: internet-explorer bho

我正在IE中编写BHO(浏览器助手对象),我需要跟踪重定向。

最初我认为BeforeNavigate2事件将是我需要的事件,但我了解到它实际上主要用于帧。接下来我发现,当存在重定向时,WebBrowserEvents2的NavigateComplete2事件似乎被激发了两次。但我不知道我的观察是否正确,而且我不知道如何判断一系列NavigateComplete2事件是由于重定向还是用户点击。请指教!

2 个答案:

答案 0 :(得分:0)

我发现很多试验和错误,如果你比较从BeforeNavigate2传递的浏览器界面指针和你创建BHO时得到的指针,你可以弄清楚真正的开始网址是什么。当它们相同时,传递给BeforeNavigate2的URL就是您需要的URL。您需要将它与从NavigateComplete2获得的那个进行比较。如果它们不同,那么它就是重定向的标志。一个问题是打开一个新窗口。在这种情况下,您还需要关注NewWindow事件并进行一些特殊处理(当打开一个新窗口时,BeforeNavigate2 URL也将传递给NavigateComplete2,因此您需要设置一个标志并相应地处理)。

答案 1 :(得分:0)

在类似于你的情况下,NavigateComplete2被浏览器对象中的不同帧触发,我发现 DocumentComplete 完成了这一操作,等待所有帧在触发之前加载。也许这对你的情况有帮助吗?