Chrome扩展功能在准备好后从background.js到内容脚本

时间:2017-06-01 02:22:01

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

我正在构建一个chrome扩展来集成2个Web应用程序,以通过REST API调用共享数据。问题是一个站点(我正在显示数据)在HTTPS上而另一个站点在HTTP上,因此我的内容脚本不会执行从HTTPS到HTTP站点的AJAX GET请求。对于解决方法,我使用background.js页面来执行对HTTP站点的所有调用,然后使用chrome.storage我将信息传递回带有API结果的内容脚本。

到目前为止它一直工作得很好但是现在我想要点击我插入HTTPS站点的按钮,它调用background.js来获取一些数据,完成后将其返回给内容脚本。问题是我不知道如何让内容脚本在尝试执行chrome.storage.sync.get调用以获取返回的数据之前等待background.js调用完成。

我一直认为我需要像回调函数这样的东西,但我不知道如何绕过那些并且我不知道这是否是我甚至需要的东西。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

为了帮助那些寻找同样东西的人我最终使用:

在Background.js中

chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
     console.log(sender.tab ?
     "from a content script:" + sender.tab.url :
     "from the extension");
     if (request.greeting == "hello")
     sendResponse({ farewell: "goodbye" });
});
内容脚本中的

File > New > Project

更多https://developer.chrome.com/extensions/messaging