开发者

Communicating with content scripts without requesting "tabs" permission

When developing a Chrome extension, my background script needs to communicate with the content scripts in the tabs loaded with a particular site. Is there a way to communicate without using chrome.tabs.sendRequest?

This function requires the "ta开发者_C百科bs" permission which shows up as "this extension has access to your browsing history," which scares off users.


Sorry, there is no other way around.

UPDATE

Actually there is a way. Instead of pushing data from a background page to a content script you can pull data from a content script, and this doesn't require any permissions:

content script:

chrome.extension.sendRequest({cmd: "getData"}, function(response) {
    console.log("data:", response);
});

background page:

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜