1

Internet Explorer BHO (c# .net) があり、ユーザーがいつナビゲーションを開始したか、またはユーザーが開始したナビゲーションが完了したかを識別したいと考えています。ユーザーが開始するとは、リンクまたは同様のアクションをクリックすることを意味します。特に、読み込まれているドキュメントに複数のフレームがある場合、それらを 1 つの「ナビゲーション」として扱いたいのですが、これを行う簡単な方法が思い浮かびません。BeforeNavigate2 および DocumentComplete イベントは知っていますが、ユーザーがリンクをクリックしたときに発生する BeforeNavigate/DocumentComplete と、フレームが読み込まれているために発生するものを区別する方法がわかりません。

私が考えている1つの可能な解決策は、上部フレームのBeforeNavigate2が常に内側フレームの前に起動され(明らかに)、子フレームのDocumentCompleteが上部のDocumentCompleteの前に呼び出され、常に最後に呼び出されることです。 . たとえば、BeforeNavigates でカウンターをインクリメントし、DocumentComplete でカウンターをデクリメントできます。0 の場合のみ、ユーザーが開始したナビゲーションになります。

しかし、これに頼ることができるかどうか、またはそれを行うためのより良い方法があるかどうかはわかりません。たとえば、ユーザーがフレームの 1 つがすべての読み込みを完了していない後に ESC を押すとどうなりますか? 最上位フレームの DocumentComplete が呼び出されることはありますか?

助言がありますか?

4

1 に答える 1