0

F5キー(更新)をクリックすると、Internet Explorer(IE9)でどのイベントが発生しますか?そして、どうすれば私のBHOのハンドラーでそれをキャッチできますか?

注:IE9用にC#でBHOを作成しました。私のクラスはIObjectWithSiteを拡張し、SetSite関数を介してハンドラーを追加できるようにします。

public int SetSite(object site)
 {
   webBrowser = (SHDocVw.WebBrowser)site; 
   //events here...
 }
4

2 に答える 2

2

Javascriptを挿入するブラウザプラグインを開発している場合は、ondocumentcompleteとondownloadcompleteの両方をフックすると便利です。

  • Ondocumentcompleteは、DOMがロードされて操作できるようになるとすぐに起動しますが、更新が失敗します。

  • Ondownloadcompleteは、すべてのリソース(画像など)がダウンロードされるまで待機しますが、更新をキャッチします。この遅延は非常に長くなる可能性があります。

両方をフックすることで、ほとんどの場合レスポンシブプラグインを取得し、更新を見逃すことはありません。次に、JavaScriptにチェックを含めて、2回実行しないようにすることができます。何かのようなもの:

// Inject the code, but only once
if (typeof myplugin == 'undefined') {
    myplugin = new function () {
        // Your code runs here.
    };
}

次のページが参考になると思いました。

于 2012-08-06T22:23:10.297 に答える
1

直接的な方法はなく、IEのさまざまなバージョンに実装するのは困難です。あなたはそれを達成するためにいくつかのイベントの組み合わせを使用することができますが。以下のアプローチは絶対確実ではないことに注意してください。

リンク:

  1. MSDNフォーラム
  2. IEの更新ボタンの検出
  3. 更新とDISPID_DOCUMENTCOMPLETE
于 2012-08-01T18:14:52.193 に答える