Jor*_*dan 3 javascript tabs google-chrome google-chrome-extension
我已经做了一个扩展pandora.com,当用户点击扩展图标时,它会打开一个带有潘多拉的新标签。
当潘多拉已经在新标签中打开并且用户单击扩展时,扩展将不会打开新标签,但我希望它改为将活动标签更改为潘多拉已经打开的标签。
这是我迄今为止在我的background页面中的内容:
chrome.browserAction.onClicked.addListener(function(tab) {
var found = false;
chrome.tabs.query({}, function (tabs) {
for (var i = 0; i < tabs.length; i++) {
if (tabs[i].url.search("pandora.com") > -1){
found= true;
}
}
if (found==false){
chrome.tabs.executeScript(null,{file: "buy.js"});
} else {
// Changes active tab to the tab with pandora open
}
});
});
Run Code Online (Sandbox Code Playgroud)
小智 11
似乎selected第二个参数的属性chrome.tabs.update现在已被弃用。
使用该active属性是实现此目的的新方法:
chrome.tabs.update(tabId, {active: true})
Run Code Online (Sandbox Code Playgroud)
如果要激活的选项卡位于另一个窗口中,您还需要使用以下命令将活动窗口更改为该窗口chrome.windows.update:
chrome.windows.update(windowId, {focused: true}, (window) => {
chrome.tabs.update(tabId, {active: true})
})
Run Code Online (Sandbox Code Playgroud)
UPDATE-chrome.tabs.update(tabId, {selected: true});实现了我所需要的。这是最终的代码:
chrome.browserAction.onClicked.addListener(function(tab) {
var found = false;
var tabId;
chrome.tabs.query({}, function (tabs) {
for (var i = 0; i < tabs.length; i++) {
if (tabs[i].url.search("www.pandora.com/") > -1){
found = true;
tabId = tabs[i].id;
}
}
if (found == false){
chrome.tabs.executeScript(null,{file: "buy.js"});
} else {
chrome.tabs.update(tabId, {selected: true});
}
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6251 次 |
| 最近记录: |