Gibt es eine API, die es ermöglicht, den Verlauf des aktuellen Tabs in einer Web Extension in Firefox abzurufen? Wie beim Klicken und Halten der Zurück-Schaltfläche wird ein Dropdown-Menü angezeigt, das den Verlauf des aktuellen Tabs anzeigt.Wie erhalte ich den Verlauf des aktuellen Tabs in einer Web Extension in Firefox?
1
A
Antwort
1
Nein. Sie können nicht standardmäßig nach der Liste für eine bestimmte Registerkarte fragen.
Sie können jedoch auf die Registerkartenereignisse OnUpdated, onCreated usw. warten. Mit der tabId, die gleich bleibt, können Sie eine Liste von URLs in einem Hintergrundskript (background.js) führen, das immer beim Addon ausgeführt wird aktiviert.
Sie würden es tun, wie folgt:
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);
}
Der obige Code ist ein Proof of Concept. Einige Verbesserungen, die Sie beachten müssen: implementieren onClosed, das den Tab-Verlauf für diese ID zurücksetzt (arr [tabId] = null), implementiert onUpdated (wird sicher benötigt, dieselbe Logik wie in handleCreated).
Links:
Verwandte Themen
- 1. Firefox Web Extension Internationalisierung Fehler
- 2. Erhalte nur den Text des aktuellen Knotens
- 3. Wie erhalte ich den aktuellen Namespace in einem Pod?
- 4. Wie bekomme ich den aktuellen Extension-Delegaten auf watchOS?
- 5. Web Extension: Wie verwende ich "browser_style = true"?
- 6. Firefox Extension location.href nicht umleiten
- 7. Erhalte den aktuellen Dateinamen in Babel Plugin?
- 8. Wie jQuery in Firefox Extension verwenden
- 9. Firefox Extension Link Extractor
- 10. Wie speichert man den Speicherstatus eines Tabs in Firefox/Chrome?
- 11. Wie lösche ich den Chat-Verlauf in Quickblox?
- 12. Wie bekomme ich den aktuellen Tab Titel, den ich in Jquery Tabs UI
- 13. Erhalte den aktuellen Dateinamen in JSP
- 14. Wie erhalte ich den aktuellen Benutzer von einem AWS AppStream?
- 15. Chrome Wie bekomme ich die ID des aktuellen Tabs?
- 16. Wo finde ich den Download-Verlauf des Internet Explorers?
- 17. Services.wm ist nicht definiert (Firefox SDK Extension)
- 18. Wie bekomme ich den aktuellen Benutzer in Interceptors und erhalte seine Ressourcen in den Controllern
- 19. Wie erhalte ich den aktuellen Benutzernamen in einer benutzerdefinierten Aktion für Windows Installer?
- 20. Wie erhalte ich den aktuellen Benutzernamen vom Game Center
- 21. firefox extension help
- 22. Wie erhalte ich den aktuellen Wert des title-Attributs in einem Select?
- 23. Wie erhalte ich den Basisnamen des aktuellen Ordners als Variable in einem Makefile?
- 24. Wie erhalte ich ein Click-Ereignis in Google Extension?
- 25. Wie erhalte ich den Wert des Ereignisziels?
- 26. CSS-Verlauf wird in Firefox nicht angezeigt
- 27. Erhalte aktuellen Benutzer in DotNetNuke
- 28. Wie erhalte ich den Namen des Telefonbenutzers?
- 29. Wie kann ich den aktuellen Geräuschpegel des aktuellen Audioausgabegerätes erhalten?
- 30. Wie lösche ich den gesamten Commit-Verlauf in GitHub?
So ist es daher möglich, die Geschichte zu bewahren, für * jede * Tab getrennt? Und damit auch die Historie bei Anforderung für die aktuelle Registerkarte aufrufen zu können? – Gary
Bitte beachten Sie den Code, den ich der Antwort hinzugefügt habe. – Smile4ever
Okay danke. Vor WE war 'FillHistoryMenu' verfügbar, also ist es bedauerlich, dass sie das entfernt haben. – Gary