回答

1

不可以。默認情況下,您無法要求某個標籤的列表。

但是,您可以監聽onUpdate,onCreated等選項卡事件。使用保持不變的tabId,您可以將URL列表保留在後臺腳本(background.js)中,該腳本始終在運行已啓用。

你會做這樣的:

let arr=[]; // At the top of background.js 
browser.tabs.onCreated.addListener(handleCreated); // Somewhere in background.js 

function handleCreated(tab) { 
    let tabId = tab.id; 
    if(arr[tabId]==null) arr[tabId] = []; 
    arr[tabId].push(url); 
} 

function getHistoryForCurrentTab(){ 
    function currentTabs(tabs) { 
     // browser.tabs.query returns an array, lets assume the first one (it's safe to assume) 
     let tab = tabs[0]; 
     // tab.url requires the `tabs` permission (manifest.json) 
     // We will now log the tab history to the console. 
     for(let url of arr[tab.id]){ 
      console.log(url); 
     } 
    } 

    function onError(error) { 
     console.log(`This should not happen: ${error}`); 
    } 

    browser.tabs.query({currentWindow: true, active: true}).then(currentTabs, onError); 
} 

上面的代碼是一個概念證明。您需要考慮的一些改進:實現onClosed,它重置該標籤的歷史記錄(arr [tabId] = null),實現onUpdated(肯定需要,與handleCreated中的邏輯相同)。

鏈接:

+0

所以因此能夠保留歷史,對每個* *單獨標籤?因此,當需要時,還可以在當前選項卡上調用歷史記錄? – Gary

+0

請參閱我添加到答案的代碼。 – Smile4ever

+0

好的,謝謝。在我們之前,'FillHistoryMenu'可用,所以很遺憾他們刪除了這個。 – Gary

相關問題