簡體   English   中英

chrome.tabs不可用:您無權訪問此API

[英]chrome.tabs is not available: You do not have permission to access this API

我設置了這個權限

"permissions": [ "tabs" ],

在我使用的.js中

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不可用:您無權訪問此API。 確保manifest.json中包含所需的權限或清單屬性。

如上所述,斯蒂芬的解決方案不再適用。 AFAICT,看起來谷歌不再允許在content-script訪問標簽API中描述的回調。

所有這些意味着你必須在background.js中指定你的重定向:

(內容的script.js)

chrome.extension.sendRequest({ command: "selected-tab" });

(background.js)

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

正如Rob W已經提到的那樣,您無法訪問內容腳本中的選項卡API。

您必須向后台腳本發送請求,該腳本將返回選定的選項卡。

(內容的script.js)

chrome.extension.sendRequest({ command: "selected-tab" }, function(tab) {
    var page_url = tab.url;
    // your code
});

background.js

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    if (request.command == "selected-tab") {
        chrome.tabs.getSelected(null, sendResponse);
    }
});

Google不允許(不再?)從內容腳本中訪問tab對象。

如果要獲取選項卡,可以從發送方發送到偵聽器的回調函數:

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    console.log("Received from tab: ", sender.tab);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM