1

在开发 Chrome 扩展程序时,我的后台脚本需要与加载特定站点的选项卡中的内容脚本进行通信。有没有不使用 chrome.tabs.sendRequest 的方式进行通信?

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

4

2 回答 2

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"});
    }
});
于 2011-07-25T15:18:42.923 回答
1

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

于 2011-07-25T21:25:01.887 回答