与内容脚本通信而不请求“选项卡”权限

时间:2011-07-25 13:49:24

标签: google-chrome google-chrome-extension privacy userscripts

开发Chrome扩展程序时,我的后台脚本需要与加载特定网站的标签中的内容脚本进行通信。 有没有办法在不使用chrome.tabs.sendRequest的情况下进行通信?

此功能需要“标签”权限,该权限显示为“此扩展程序可以访问您的浏览历史记录”,这会吓跑用户。

2 个答案:

答案 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