在开发 Chrome 扩展程序时,我的后台脚本需要与加载特定站点的选项卡中的内容脚本进行通信。有没有不使用 chrome.tabs.sendRequest 的方式进行通信?
此功能需要“标签”权限,显示为“此扩展程序可以访问您的浏览历史记录”,这会吓跑用户。
在开发 Chrome 扩展程序时,我的后台脚本需要与加载特定站点的选项卡中的内容脚本进行通信。有没有不使用 chrome.tabs.sendRequest 的方式进行通信?
此功能需要“标签”权限,显示为“此扩展程序可以访问您的浏览历史记录”,这会吓跑用户。
抱歉,没有其他办法。
更新
其实是有办法的。您可以从内容脚本中提取数据,而不是将数据从后台页面推送到内容脚本,这不需要任何权限:
内容脚本:
chrome.extension.sendRequest({cmd: "getData"}, function(response) {
console.log("data:", response);
});
背景页面:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if(request.cmd == "getData") {
sendResponse({param1: "value1", param2: "value2"});
}
});
Remember even if you could communicate with background page without using chrome.tabs.sendRequest
(actually it is almost impossible), you still need the tabs
permission in order to inject a content script.
Read more: http://code.google.com/chrome/extensions/content_scripts.html