Nun, aus einem tabs.on('activate')
Event-Handler, haben Sie die tab
. Das tab
-Objekt verfügt über eine Eigenschaft url
, von der Sie den Host erhalten können. Sobald Sie den Host haben, können Sie die Cookies für diesen Host erhalten. Du hast nicht gesagt, was du mit ihnen machen willst. Also, hier ist nur ein Weg, sie aufzuzählen.
Um einige Methoden von zu verwenden, benötigen Sie auch Chrome Authority.
var domainToUse = 'google.com';
var { Services } = require("resource://gre/modules/Services.jsm");
var { Cc, Cu, Ci} = require("chrome");
let cookieEnumerator = Services.cookies.getCookiesFromHost(domainToUse);
while (cookieEnumerator.hasMoreElements()) {
let cookie = cookieEnumerator.getNext().QueryInterface(Ci.nsICookie2);
console.log(cookie.host + ";" + cookie.name + "=" + cookie.value + "\n");
}
Update für neuere Versionen von Firefox:
Hinweis: Mindestens von Firefox 50.0a2 (derzeit Firefox Developer Edition) ist es notwendig, einen etwas anderen Anruf zu getCookiesFromHost()
verwenden, um die cookieEnumerator
zu erhalten. Ohne die Änderung wird beim Aufruf von getCookiesFromHost()
eine Warnmeldung in der Browser-Konsole angezeigt, die Sie dazu anweist, die nsICookieManager2 MDN documentation page zu besuchen, die keine aktualisierten Informationen zur Warnung oder eine Dokumentation zur Änderung enthält. Ich musste im Quellcode nachsehen, was erforderlich war. Was wünschenswert erscheint, ist, den aktuellen Inhalt document
zu übergeben. Allerdings von einem Hintergrundskript, das nicht sinnvoll erschien. Die andere Möglichkeit besteht darin, einfach ein leeres Objekt {}
zu übergeben. Somit wird diese Zeile geändert: „die originAttributes
von Cookies, die abgerufen werden würden“
let cookieEnumerator = Services.cookies.getCookiesFromHost(domainToUse,{});
Es soll für das Bestehen in seine
Der obige Code ist leicht von meinem answer to "How to set custom cookies using Firefox Add-on SDK (using Services from Firefox Add-on SDK)" geändert.
Ähnliche/nahe Duplikat: [Zugriff auf bestimmte Cookies nach Domain/Name in Firefox-Erweiterung] (http://Stackoverflow.com/q/9477682/3773011) – Makyen
Beim Lesen Ihrer Frage ist es mir unklar, von welcher Registerkarte Sie versuchen, die Domain zu erhalten, für die Sie die Cookies wünschen. Ihr Code sieht so aus, als ob Sie die Domain für die gerade aktivierte Registerkarte abrufen möchten. Ihr Text bedeutet, dass Sie die Domäne von einer anderen Registerkarte abrufen möchten. – Makyen
ja die Domain, die ich angegeben habe, ist in einer anderen Registerkarte –