2017-02-28 48 views
-1

我有以下清單文件:捕捉JSON

{ 
    "manifest_version": 2, 
    "permissions": [ 
     "http://*/*", 
     "https://*/*" 
    ], 
    "background": { 
     "scripts": [ 
      "./src/background.js" 
     ] 
    } 
} 

在我的背景劇本,我有以下代碼:

console.log('I am here'); 
chrome.extension.onRequest.addListener((request, sender, response) => { 
    console.log(request, sender, response); 
}); 

當我打開一個網頁,我希望偵聽器內部的console.log可以觸發,但沒有任何反應。雖然我確實得到了輸出I am here

我想要做的是從包含json的URL捕獲響應。然後我想從json獲取特定的數據並將其發送到我的服務器。

也許使用chrome.extension.onRequest不是最好的辦法。我該怎麼做?

+2

這對通過'鉻發送的消息。 runtime.sendMessage'。我不明白「包含json的URL」是什麼,以及URL請求如何/何處發起。 – wOxxOm

+0

你的代碼似乎與你題目的標題無關,也沒有任何解釋爲什麼你會期待你的聽衆開火。請[編輯]這個問題,以便更清楚你實際上正在做什麼。 – Makyen

+0

我建議您閱讀[Chrome擴展程序概述](https://developer.chrome.com/extensions/overview)(可能還包括從概述鏈接的頁面)。 [體系結構部分](https://developer.chrome.com/extensions/overview#arch)具有全面的體系結構信息,這些信息應該有助於您理解組織/完成情況的方式。您可能還需要閱讀[內容腳本](https://developer.chrome.com/extensions/content_scripts)和[消息傳遞](https://developer.chrome.com/extensions/messaging)。 – Makyen

回答

0

onRequest已棄用,請改用chrome.runtime.onMessage

使用onMessage像這樣: chrome.runtime.onMessage.addListener(function callback)

當發送從任一的擴展處理(由runtime.sendMessage)的消息燃煤或內容的腳本(由tabs.sendMessage)。

callback如下:

function(any message, MessageSender sender, function sendResponse) {...};

更多信息可以在developer.chrome.com網站上找到:

https://developer.chrome.com/extensions/runtime#method-sendMessage

+0

使用它不起作用。我仍然得到相同的影響 –

+0

您還需要調用['sendMessage'](https://developer.chrome.com/extensions/runtime#method-sendMessage)。 –

+0

你能不能更新你的答案請舉一個例子 –