Signatur
Beschreibung
Die Methode keys() der Schnittstelle WorkletSharedStorage liefert einen asynchronen Iterator. Er gibt nacheinander die Schlüssel (Strings) aller Einträge zurück, die der aktuelle Ursprung in der Shared Storage abgelegt hat. Die Shared Storage gehört zur Privacy Sandbox. Dort lassen sich Daten websiteübergreifend speichern, aber nur in einer abgeschotteten Umgebung wieder lesen.
Lesezugriffe sind ausschließlich innerhalb eines Shared-Storage-Worklets möglich. Das Worklet wird über sharedStorage.worklet.addModule() geladen. Dort greifen Sie über das globale Objekt sharedStorage (eine WorkletSharedStorage-Instanz) auf keys() zu. Im normalen Fenster-Kontext (window.sharedStorage) gibt es diese Methode nicht.
Durchlaufen wird der Iterator mit for await...of. Typische Anwendungen sind Operationen, die über register() angemeldet werden: Sie prüfen alle vorhandenen Einträge, zählen sie oder leiten daraus eine URL-Auswahl (selectURL) bzw. einen Bericht über die Private Aggregation API ab.
Rückgabewert
string) der Shared Storage des aktuellen Ursprungs liefert.Beispiele
Alle Schlüssel im Worklet auflisten
// shared-storage-worklet.js
class ListKeysOperation {
async run(data) {
const keys = [];
for await (const key of sharedStorage.keys()) {
keys.push(key);
}
console.log('Gespeicherte Schlüssel:', keys);
}
}
register('list-keys', ListKeysOperation);
Worklet von der Seite aus laden und Operation starten
// main.js (Fenster-Kontext)
await window.sharedStorage.set('besuche', '3');
await window.sharedStorage.set('ab-test-gruppe', 'B');
await window.sharedStorage.worklet.addModule('shared-storage-worklet.js');
await window.sharedStorage.run('list-keys');
URL-Auswahl anhand vorhandener Schlüssel
// select-worklet.js
class SelectByKeysOperation {
async run(urls) {
let anzahl = 0;
for await (const key of sharedStorage.keys()) {
if (key.startsWith('kampagne-')) anzahl++;
}
// Index der zu zeigenden URL zurückgeben
return anzahl > 2 ? 1 : 0;
}
}
register('select-by-keys', SelectByKeysOperation);
// main.js
// await window.sharedStorage.worklet.addModule('select-worklet.js');
// const config = await window.sharedStorage.selectURL('select-by-keys', [
// { url: 'https://example.com/standard.html' },
// { url: 'https://example.com/treue-kunden.html' }
// ]);
// Wichtig · Fallstricke
- Nur im Worklet:
keys()gibt es ausschließlich aufWorkletSharedStorage. Ein Aufruf vonwindow.sharedStorage.keys()scheitert mit einemTypeError, weil die Methode dort nicht existiert. - Asynchron: Der Iterator funktioniert nur mit
for await...of. Ein normalesfor...ofoder der Spread-Operator ([...sharedStorage.keys()]) klappt nicht. - Kein Datenabfluss: Die gelesenen Schlüssel verlassen das Worklet nicht direkt. Ergebnisse kommen nur über
selectURL()(in einem Fenced Frame) oder die Private Aggregation API heraus. Mitconsole.loglässt sich lediglich in den DevTools debuggen. - Kompatibilität: Die Methode ist experimentell und gehört zur Privacy Sandbox. Nur Chromium-Browser unterstützen sie, und die Website muss angemeldet (enrolled) sein. Firefox und Safari bieten sie nicht an. Vor der Nutzung sollten Sie die Verfügbarkeit prüfen, z. B. mit
'sharedStorage' in window. - Die Reihenfolge der Schlüssel ist nicht garantiert. Verlassen Sie sich nicht auf eine Einfügereihenfolge.