2016-04-28 195 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,消息對象,但它只是似乎該事件偵聽器永遠不會捕捉任何東西。我希望這段代碼能夠捕獲任何類型的HTML片段注入,而不僅僅是AngularJS,所以我不能單獨依賴AngularJS事件。我錯過了什麼明顯的?

感謝,

阿爾

+0

對於後臺腳本,您應該能夠看到控制檯,但您需要通過單擊擴展下的inspect views標籤旁邊的背景腳本,從chrome:// extensions視圖啓動調試器。 –

+0

嗨戈登,感謝您的評論。 chrome.webRequest是未定義的。我通過訪問後臺頁面來檢查,鉻對象存在但沒有webRequest對象。 –

+0

我想我找到了問題。我的清單文件有兩次聲明的權限。當我刪除第二個聲明時,我的背景頁面識別出chrome.webRequest對象。 –

回答

1

我看到它。 您有權限定義了您的manifest.json兩次。僅使用activeTab刪除第二個權限屬性,您應該開展業務。