1
FirefoxのWeb拡張機能で現在のタブの履歴を取得できるAPIはありますか?戻るボタンをクリックしたままにすると、現在のタブの履歴を表示するドロップダウンが表示されます。FirefoxのWeb拡張機能で現在のタブの履歴を取得するには?
FirefoxのWeb拡張機能で現在のタブの履歴を取得できるAPIはありますか?戻るボタンをクリックしたままにすると、現在のタブの履歴を表示するドロップダウンが表示されます。FirefoxのWeb拡張機能で現在のタブの履歴を取得するには?
いいえ。デフォルトでは、特定のタブのリストを要求することはできません。
ただし、更新した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を実装して、そのIDのタブ履歴をリセットする(arr [tabId] = null)、onUpdatedを実装します(handleCreatedと同じロジックが必要です)。
リンク:
だから、別途*各*タブのため、歴史を保持することが可能ですか?したがって、現在のタブについては、要求されたときに履歴を呼び出すこともできますか? – Gary
答えに追加したコードをご覧ください。 – Smile4ever
よろしくお願いいたします。 WEの前に、 'FillHistoryMenu'が利用可能でしたので、残念ながら削除しました。 – Gary