Как открыть новую вкладку в существующем окне инкогнито? - PullRequest
1 голос
/ 21 февраля 2020

Я пишу расширение chrome о создании новой вкладки из контекстных меню в окне инкогнито. Я использую скрипт, подобный следующему:

chrome.windows.create({url: "https://google.com", incognito: true});

Скрипт работает, но при его активации всегда появляется новое окно. Есть ли способ открыть новую вкладку в существующем окне инкогнито?

1 Ответ

1 голос
/ 21 февраля 2020

Если вы хотите создать вкладку внутри существующего окна, вы можете использовать chrome.tabs.create(), указывая windowId существующего окна. Чтобы узнать, какой из открытых windows находится в режиме инкогнито, вы можете использовать chrome.windows.getAll(), чтобы получить массив открытых в данный момент windows и перебирать результаты, пока не увидите один с incognito установить true.

Вот рабочий пример:

chrome.windows.getAll({populate: false, windowTypes: ['normal']}, function(windows) {
    for (let w of windows) {
        if (w.incognito) {
            // Use this window.
            chrome.tabs.create({url: "https://google.com", windowId: w.id});
            return;
        }
    }

    // No incognito window found, open a new one.
    chrome.windows.create({url: "https://google.com", incognito: true});
});
...