将数据从background.js发送到popup.html

时间:2014-09-01 15:40:39

标签: javascript google-chrome google-chrome-extension

在我的background.js中,当在加载期间匹配URL时,它加载了ajax。例如,它是google.com,它会触发ajax并收到一些数据。但是如何将这些数据发送到我的popup.html?

我试过了chrome.runtime.sendMessage,但我没有得到它。 param发送到哪个文件?

我很困惑。

2 个答案:

答案 0 :(得分:2)

当您通过chrome.runtime.sendMessage发送数据时,您可以通过收听onMessage事件在弹出窗口中获取数据。

当您从background.js发送消息时,

chrome.runtime.sendMessage({msg: 'hello there'});

你可以在popup.html加载的js文件中获取它:

chrome.extension.onMessage.addListener(function(message, messageSender, sendResponse) {
    // message is the message you sent, probably an object
    // messageSender is an object that contains info about the context that sent the message
    // sendResponse is a function to run when you have a response
});

请参阅herehere

答案 1 :(得分:0)

你可以编辑你的问题以包含你的manifest.json吗?在提出建议时,这通常非常有用。

假设您的popup.html是内容脚本的一部分,您需要使用chrome.tabs.sendMessage将消息从后台页面发送到内容脚本。

另请考虑在整个扩展程序中使用chromeps进行简单的pubsub样式邮件传播,而不必担心何时使用chrome.runtime vs chrome.tabs