1

現在フォーカスされているタブと最後にフォーカスされたタブを切り替える単純な拡張機能を作成しました。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});
  }
});

ウェブストアでダウンロード

完全なソース コード

4

1 に答える 1