Получить идентификатор вкладки вкладки, где выполняется скрипт в расширениях Chrome - PullRequest
0 голосов
/ 04 апреля 2019

В расширении Chrome есть способ получить вкладку, на которой исполняется фрагмент javascript.

Обычный способ сделать это:

chrome.tabs.query({active: true, currentWindow: true}, function(tabs){});

Но естьпроблема здесь в том, что при выполнении этого кода вкладка, инициировавшая этот сценарий, может быть не в фокусе, и вы получите текущую активную вкладку.

Представьте себе следующую страницу расширения и сценарий:

URL: расширение chrome // my-extension-id / index.html

<script type='text/javascript' src='index.js'></script>

URL: расширение chrome // my-extension-id / index.js

setTimeout(function(){
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
        console.log(tabs[0]);
    });
},5000);

Если вы откроете URL-адрес с помощью html-файла и переключите вкладки менее чем за 5 секунд, вы получите новую вкладку в журнале консоли.Есть ли способ получить оригинальную вкладку?

Очевидное решение - сначала получить активную вкладку, а затем запланировать время ожидания, но все же есть случаи, когда вы можете открыть вкладку, не делая ее активной, например, щелкнув правой кнопкой мыши + открыть в новой вкладке.

Так есть ли способ получить идентификатор вкладки, которая инициировала скрипт?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...