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

发布于 2024-11-26 17:09:15 字数 156 浏览 2 评论 0原文

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

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

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 "tabs" permission which shows up as "this extension has access to your browsing history," which scares off users.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

抱歉,没有其他办法。

更新

其实是有办法的。您可以从内容脚本中提取数据,而不是从后台页面将数据推送到内容脚本,这不需要任何权限:

内容脚本:

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"});
    }
});

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"});
    }
});
君勿笑 2024-12-03 17:09:15

请记住,即使您可以在不使用 chrome.tabs.sendRequest 的情况下与后台页面通信(实际上它几乎是 不可能),您仍然需要 tabs 权限才能注入内容脚本。

了解详情:http://code.google.com/chrome/extensions/content_scripts.html< /a>

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文