前言:我是这个人的初学者。
我正在尝试制作一个扩展名,用预定义的网址替换当前标签网址。到目前为止,我有以下内容:
chrome.tabs.getSelected(null, function(tab){
chrome.tabs.update(tabs.id, {url: "https://www.wikipedia.org/"});
});
chrome app开发人员工具告诉我“标签未定义”,但我的清单权限中有“标签”。清单:
"permissions": [
"tabs",
"declarativeContent",
"https://www.wikipedia.org/"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_icon": "icon-19.png",
"default_title": "Simple-Switch"
}
答案 0 :(得分:2)
权限不声明您可以使用的变量(就像有“var tabs
”);它们定义了允许使用的功能(在这种情况下,您可以调用chrome.tabs
中的函数)。
您的问题是您的回调采用tab
参数,但您使用变量tabs
。因此“标签未定义”。所以最简单的修复方法是function(tabs)
。但您也应该使用tabs.query
而不是已弃用的tabs.getSelected
:
chrome.tabs.query({active:true,currentWindow:true}, function(tabs){
chrome.tabs.update(tabs[0].id, {url: "https://www.wikipedia.org/"});
});
您还可以将tabs
权限更改为activeTab
。