开发Chrome扩展程序时,我的后台脚本需要与加载特定网站的标签中的内容脚本进行通信。 有没有办法在不使用chrome.tabs.sendRequest的情况下进行通信?
此功能需要“标签”权限,该权限显示为“此扩展程序可以访问您的浏览历史记录”,这会吓跑用户。
答案 0 :(得分:4)
对不起,没有别的办法了。
<强>更新强>
实际上还有一种方法。您可以从内容脚本中提取数据,而不是将数据从后台页面推送到内容脚本,这不需要任何权限:
内容脚本:
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"});
}
});
答案 1 :(得分:1)
请记住,即使您可以在不使用chrome.tabs.sendRequest
的情况下与背景页面进行通信(实际上它几乎为impossible),您仍需要tabs
权限才能注入内容脚本。< / p>
了解详情:http://code.google.com/chrome/extensions/content_scripts.html