- PR -

axWebBrowserオブジェクト上でのイベント発生元を知りたい

1
投稿者投稿内容
matsuo
会議室デビュー日: 2003/06/02
投稿数: 1
投稿日時: 2003-06-02 16:11
Visual C#からMicrosoft Web Browserコントロールを利用してブラウザ表示部を作り、
その中で発生したイベントの情報を取得したいと考えています。
ドキュメント上のどのアンカーがクリックされたのか、などの情報です。

これまでの経緯として、まずBeforeNavigate2イベントハンドラを利用しようとしたのですが、
このイベントがサッパリ発生してくれません。
調べてみたところ、VS.NETのバグでこのイベントが発生しないということがわかりました。
http://support.microsoft.com/default.aspx?kbid=325079

そこで上記の文書に書かれた回避方法を参考にしてイベントハンドラを再定義してみると、
BeforeNavigateイベントハンドラでナビゲーション開始をキャッチし、
例えば

IHTMLDocument2 myDoc = (IHTMLDocument2)axWebBrowser.Document;
MessageBox.Show (myDoc.activeElement.innerHTML);

などとすることでイベント発生源エレメントの情報を取得できました。

ところが、フレーム分割されたページでうまくいかなくなりました。
フレーム分割されたページでのナビゲーション時には処理がBeforeNavigateではなく
FrameBeforeNavigateに渡ることはわかったのですが、
ここで同じようにdocument.activeElementなどを参照しても
ナビゲーション対象のFRAMEそのものが返るだけで、
イベント発生源の情報を取得することはできませんでした。
window.@event.srcElementを参照しても、ここにも何も入っていません。

フレーム分割されたページでナビゲーションイベント発生源となる
アンカーやフォームなどの情報を取得する手段を、どなたか御存知ないでしょうか。
1

スキルアップ/キャリアアップ(JOB@IT)