首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >chrome.tabs不可用:您没有访问此接口的权限

问chrome.tabs不可用:您没有访问此接口的权限
EN

Stack Overflow用户
提问于 2013-06-24 20:40:29
回答 3查看 2.6K关注 0票数 3

我设置了这个权限

代码语言:javascript
复制
"permissions": [ "tabs" ],

在我使用的.js中

代码语言:javascript
复制
chrome.tabs.getSelected(null, function(tab) {
var page_url = tab.url;
$("#chrome_ext_qr_code img").attr("src", ...);
$("#chrome_ext_qr_code input").val(...);
});

为什么会出现这个错误?

chrome.tabs不可用:您没有访问此接口的权限。请确保manifest.json中包含所需的权限或清单属性。

EN

回答 3

Stack Overflow用户

发布于 2013-06-30 02:35:57

斯蒂芬的解决方案,如上所述,不再有效。看起来谷歌也不再允许content-script中描述的回调访问tabs API了。

这意味着你必须在你的background.js中指定你的重定向:

(content-script.js)

代码语言:javascript
复制
chrome.extension.sendRequest({ command: "selected-tab" });

(background.js)

代码语言:javascript
复制
chrome.extension.onRequest.addListener(function(request, sender) { 
  if (request.command == "selected-tab") { 
    chrome.tabs.getSelected(null, function(){
      // your code here
      // var page_url = tab.url etc, etc
    }; 
  } 
});
票数 1
EN

Stack Overflow用户

发布于 2013-06-25 18:51:15

正如Rob W已经提到的,您不能在content-script中访问tabs API。

您必须向后台脚本发送一个请求,它将返回所选的选项卡。

(content-script.js)

代码语言:javascript
复制
chrome.extension.sendRequest({ command: "selected-tab" }, function(tab) {
    var page_url = tab.url;
    // your code
});

background.js

代码语言:javascript
复制
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    if (request.command == "selected-tab") {
        chrome.tabs.getSelected(null, sendResponse);
    }
});
票数 0
EN

Stack Overflow用户

发布于 2013-10-02 19:59:18

谷歌不再允许(?)若要从内容脚本内部访问选项卡对象,请执行以下操作。

如果你想获取标签,你可以从发送者发送到监听器的回调函数中获取:

代码语言:javascript
复制
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    console.log("Received from tab: ", sender.tab);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17275723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档