[英]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.