2017-02-28 102 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

你能不能更新你的答案请举一个例子 –