2011-07-13 16 views
2

ローカルページのGoogle Chromeプラグインでネットワークトラフィックを監視することはできますか?たとえば、Webページが特定のファイルを(正規表現の一致に基づいて)要求するたびに監視し、ユーザーがプラグインをクリックすると、そのファイルに新しいタブが開きます。Google Chromeプラグインの開発 - ネットワーク要求を監視しますか?

+0

ローカルの意味 'file://'? – serg

+0

いいえ、例えば、私は開発者タブでページがhttp://somesite.com/somemp3.mp3をロードしているのを見ることができます。いつでもそのボタンをクリックすることでそのmp3をダウンロードできるようになります。そのリンクを指し示す新しいタブを開きます... – wuntee

+0

http://stackoverflow.com/q/7819463/632951とhttp://stackoverflow.com/q/6831916/632951 – Pacerier

答えて

3

「正しい」方法はwebRequest APIを使用することですが、それはまだ実験的なものです:

//background.html 
chrome.experimental.webRequest.onCompleted.addListener(function(details) { 
    console.log("resource", details.url); 
}); 

一方、あなたが次のコードでロードされているリソースをキャッチすることができます:

document.addEventListener("beforeload", function(event) { 
    console.log("resource", event.url); 
}, true); 

このニーズを"run_at": "document_start"で実行されるコンテンツスクリプトに入ります。

+0

それは動作しているように見えますが、基本リクエストを見つけることができますが、これらのファイルがSWF内のGET経由で取得されているようです...これを回避する方法はありますか? – wuntee

+0

@wuntee 'beforeload'は私が知っている唯一の方法ですが、他のすべては実験的なAPIを含んでいます(フラッシュでも動作するかどうかはわかりません)。 – serg

+0

うん...助けてくれてありがとう。開発者用ペインの[ネットワーク]タブに表示されているため、そのペイントは送信されています...そのペインには拡張機能よりも多くの権限があると仮定しています。 – wuntee

関連する問題