Javascript 请解释与Google Chrome Extensions的后台通信
我已经阅读并重新阅读了本页,还运行了以下示例: 但是我似乎不知道如何在background.html、popup.html和content.js之间进行后台通信。我想向触发器函数发送消息,获取响应,并处理这些响应。地图样本几乎可以帮助我,但我只需要一些超级简单的东西,而不需要所有的地图资料。(注意,我知道jQuery和Javascript,所以如果你愿意,可以随意加入一些jQuery。)所有扩展页面(背景页面、弹出窗口、信息栏、页面操作都在同一个扩展中运行。将其视为一个包含一个域的网页。该域是你的扩展ID。这些扩展页面中的每一个都像一个常规页面(开发网站时类似) 所有扩展页面(如上所述)都可以轻松地相互通信,您可以通过多种方式进行通信:Javascript 请解释与Google Chrome Extensions的后台通信,javascript,ipc,google-chrome-extension,Javascript,Ipc,Google Chrome Extension,我已经阅读并重新阅读了本页,还运行了以下示例: 但是我似乎不知道如何在background.html、popup.html和content.js之间进行后台通信。我想向触发器函数发送消息,获取响应,并处理这些响应。地图样本几乎可以帮助我,但我只需要一些超级简单的东西,而不需要所有的地图资料。(注意,我知道jQuery和Javascript,所以如果你愿意,可以随意加入一些jQuery。)所有扩展页面(背景页面、弹出窗口、信息栏、页面操作都在同一个扩展中运行。将其视为一个包含一个域的网页。该域是
var bkg = chrome.extension.getBackgroundPage();`
bkg.ping();`
chrome.extension.sendRequest({method: 'ping'}, function(response) {
// response.result
});
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == 'ping') {
sendResponse({result: 'pong'});
}
});
background\u page.html
chrome.extension.sendRequest({method: 'ping'}, function(response) {
// response.result
});
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == 'ping') {
sendResponse({result: 'pong'});
}
});
关于类似的问题,我已经回答了很多问题,其他人也回答了很多问题。由于您在JavaScript方面的经验,我强烈建议您阅读文档,它包含了您所需要的一切。阅读API,我希望您现在了解内容脚本和扩展页面之间的区别,并且通过h Extension Messaging.如果您在这方面也使用了jQuery,那么还需要注意一点。您需要在background.html中加载jQuery,否则您将一事无成。此外,我发现我不必从background.html的内容脚本请求中执行chrome.tabs.sendRequest——我只使用了上面的#2,它就起作用了。还有一些可怕的东西没有tice,可能是我的Chrome在后台更新了,或者是有了新版本。昨天,我通过content.js对本地主机进行了AJAX调用,但没有收到任何错误。今天,它出现了一个跨域错误,迫使我使用background方法。这里有一段非常有用的代码:你不能使用chrome、 tabs.sendRequest或getBackgroundPage从内容脚本中,您必须使用#2(消息)在后台页面中设置侦听器,并通过chrome.extension.sendRequest传入消息。如果需要更多帮助,请告诉我:)@MohamedMansour如何从Google chrome扩展的信息栏调用背景页函数、内容脚本函数、popup.html函数。相关: