現在フォーカスされているタブと最後にフォーカスされたタブを切り替える単純な拡張機能を作成しました。ALT+Q
切り替えは、拡張機能アイコン バーのボタンをクリックするか、クリックすることで実行できます。1つだけ問題があります。拡張機能は、現在のタブで一定の時間が経過すると、最後にフォーカスされたタブを忘れているようです。つまり、最後にフォーカスされたタブに戻ることができなくなりました。
私の拡張機能が最後にフォーカスされたタブを忘れる理由を誰か説明してもらえますか?
// manifest.json
{
"background": {
"scripts": ["background.js"],
"persistent": false
},
"name": "Toggle Switch Recent Last Tabs",
"version": "1.1",
"manifest_version": 2,
"description": "Toggle between your current and last used (focused) tab with a keyboard shortcut (ALT+Q by default) or mouse click on the icon.",
"browser_action": {
"default_title": "",
"default_icon": "icon.png"
},
"commands": {
"toggle": {
"suggested_key": {
"default": "Alt+Q"
},
"description": "Toggle tabs"
}
},
"permissions": [
"tabs",
"http://*/",
"https://*/*"
],
"icons": {
"16": "icon_16.png",
"32": "icon_32.png",
"48": "icon_48.png",
"128": "icon_48.png"
}
}
そしてbackground.js
:
// background.js
var previousTab;
var currentTab;
// General functions
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.update(previousTab, {selected: true});
});
chrome.tabs.onSelectionChanged.addListener(function(tab) {
if (previousTab == null) {
previousTab = tab;
}
if (currentTab == null) {
currentTab = tab;
}
else {
previousTab = currentTab;
currentTab = tab;
}
});
// Keyboard shortcut toggle function
chrome.commands.onCommand.addListener(function(command) {
if (command == "toggle") {
chrome.tabs.getSelected(null, function(tab) {
previousTab = tab.id;
currentTab = null;
});
chrome.tabs.update(previousTab, {selected: true});
}
});