2012-05-07 6 views
0

F5キー(リフレッシュ)をクリックするとInternet Explorer(IE9)でイベントが発生しますか?そして私はBHOのHandlerでそれをどうやって捉えることができますか?IE9用BHOのrefresh(F5)eventHandler

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

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

答えて

1

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

リンク:

  1. MSDN Forum
  2. Detecting the IE Refresh button
  3. Refresh and DISPID_DOCUMENTCOMPLETE
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. 
    }; 
} 

私は有益であることを、次のページを発見: