Код расширения Chrome для получения текущей активной URL-адреса вкладки и определения любого обновления URL-адреса в ней. - PullRequest
0 голосов
/ 22 февраля 2019

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

chrome.tabs.onActivated.addListener( function(activeInfo){
    chrome.tabs.get(activeInfo.tabId, function(tab){
        y = tab.url;
        console.log("you are here: "+y);
    });
});

Этот код отображает текущие URL-адреса в порядке, когда я меняю активную вкладку в браузере.Но если я изменю активный URL-адрес вкладки вручную, нажав или введя его, он не сможет зарегистрировать новый URL-адрес и сделает это только в том случае, если мы переключимся между вкладками и вернемся к этой вкладке.Я хочу обнаружить оба случая.Как мне изменить свой код?

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Ниже приведен скрипт, который заботится о обоих случаях:

chrome.tabs.onActivated.addListener( function(activeInfo){
    chrome.tabs.get(activeInfo.tabId, function(tab){
        y = tab.url;
        console.log("you are here: "+y);
    });
});

chrome.tabs.onUpdated.addListener((tabId, change, tab) => {
    if (tab.active && change.url) {
        console.log("you are here: "+change.url);           
    }
});
0 голосов
/ 22 февраля 2019

вы должны использовать chrome.tabs.onUpdated.addListener API

const getActiveUrl = (tabid, changeInfo, tab) => {
  const url = changeInfo.url;

  // url is likely to be empty, and filter chrome:// and about:// URLs
  if (!url || ['chrome://', 'about://'].some(p => url.startsWith(p))) return;

  // filtering is not an active tab
  if (!tab.active) return;

  // the url address you need
  console.log(url);
}

chrome.tabs.onUpdated.addListener(getActiveUrl);

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