2016-04-28 31 views
0

私はChrome拡張機能を作成しようとしていますが、リクエストの開始時にリクエストを完了するだけでXHRリクエストをキャプチャする必要があります。これまでのところ私は、私が使用する必要があります理解:chrome.webRequest.onBeforeRequestでAngularJS XHRリクエストを取得する

  • chrome.webRequest.onBeforeRequestと
  • chrome.webRequest.onCompleted

ここに私のマニフェスト・ファイルです:

{ 
"name": "Koala", 
    "version": "1.0", 
    "manifest_version": 2, 
    "description": "test", 
    "browser_action": { 
    "default_icon": "koala.png", 
    "default_popup": "koala.html" 
    }, 
    "permissions": [ 
    "<all_urls>", 
    "activeTab", 
    "webRequest" 
    ], 
    "content_scripts": [{ 
    "matches": ["<all_urls>"], 
    "js": ["content.js"] 
    }], 
    "background":{ 
    "persistent": true, 
    "scripts": ["background.js"] 
    }, 
    "permissions": [ 
    "activeTab" 
    ] 
} 

イベントリスナーは、バックグラウンドスクリプトに入る必要があります。ここに私のbackground.jsファイルから抜粋です:私は詳細の内容を表示しようとした

chrome.webRequest.onBeforeRequest.addListener(function(details){ 
    //message to context.js and koala.js 
},{urls: ["<all_urls>"],types: ["xmlhttprequest"]},[]); 

chrome.webRequest.onCompleted.addListener(function(details){ 
    //message to context.js and koala.js 
},{urls: ["<all_urls>"],types: ["xmlhttprequest"]},[]); 

は、アラート、にconsole.log、メッセージングを経由して、オブジェクトが、単にイベントリスナーは何をキャプチャしませんようです。このコードでは、AngularJSだけではなく、あらゆる種類のHTMLフラグメントをキャプチャしたいので、AngularJSイベントのみに依存することはできません。何も分からないのですか?

おかげで、

アルバン

+0

バックグラウンドスクリプトの場合、コンソールを表示する必要がありますが、拡張機能の下にあるinspectビューのラベルの横にある背景スクリプトをクリックすると、chrome:// extensionsビューからデバッガを起動する必要があります。 –

+0

こんにちはゴードン、あなたのコメントのおかげで。 chrome.webRequestは未定義です。背景ページにアクセスしてチェックしたところ、chromeオブジェクトは存在しますが、webRequestオブジェクトはありません。 –

+0

私はこの問題を発見したと思う。私のマニフェストファイルには2回のパーミッションが宣言されています2番目の宣言を削除すると、私の背景ページがchrome.webRequestオブジェクトを認識しました。 –

答えて

1

私はそれを参照してください。 manifest.jsonを2回定義したアクセス権があります。 activeTabだけで2番目の権限プロパティを削除すると、ビジネスに参加する必要があります。

関連する問題