我做了一个扩展,它可以记住上一个选项卡,并在当前选项卡和上一个选项卡之间切换按钮单击。现在我想扩展它以记住上一个选项卡。一旦关闭当前选项卡,这将允许在两个选项卡之间切换。但是,我在代码逻辑上苦苦挣扎。在当前选项卡和上一个选项卡之间切换的代码:
var previousTab;
var currentTab;
// Switch tab on button click
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.update(previousTab, {selected: true});
});
// Update variables on tab change
chrome.tabs.onSelectionChanged.addListener(function(tab) {
if (previousTab == null) {
previousTab = tab;
}
if (currentTab == null) {
currentTab = tab;
}
else {
previousTab = currentTab;
currentTab = tab;
}
});
现在,关闭当前选项卡后在两个选项卡之间切换的代码:
var previousTab;
var previousPreviousTab;
var currentTab;
// Switch tab on button click
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.update(previousTab, {selected: true});
});
// Update variables on tab change
chrome.tabs.onSelectionChanged.addListener(function(tab) {
if (previousTab == null) {
previousTab = tab;
}
if (currentTab == null) {
currentTab = tab;
}
if (previousPreviousTab == null) {
previousPreviousTab = tab;
}
else {
previousPreviousTab = previousTab;
previousTab = currentTab;
currentTab = tab;
}
});
// Update variables on tab removal
chrome.tabs.onRemoved.addListener(function(tab) {
previousTab = previousPreviousTab;
});
我的逻辑一定有问题。当我打开两个新标签然后关闭最近的一个时,单击切换按钮会引发错误tabs.update: No tab with id: 698.