Ich versuche, einen einfachen Proof-of-Concept bezüglich der Verwendung von localStorage zu erstellen, um Tabs in meiner Anwendung auszulösen, wenn Änderungen auftreten. Ich weiß, dass dies möglich ist, basierend auf anderen Artikeln, die ich gesehen habe. Ich verstehe the spec Staaten das Ereignis wird auf immer Seite außer die ich bin auf - das ist in der Tat, was ich will. Allerdings kann ich diese einfache Demo nicht wirklich funktionieren sehen.Lokales Speicherereignis kann nicht in Tabs angezeigt werden
Ich habe den folgenden Code genommen und mehrere Registerkarten davon geöffnet. Mit meinen Chrome Dev Tools kann ich> localStorage in der Konsole überprüfen und den Wert vor und nach dem Drücken der Schaltflächen "Hinzufügen" und "Löschen" sehen - sie funktionieren tatsächlich wie gewünscht beim Speichern und Löschen des Schlüsselwertpaars in Lokal Speicher, aber das Ereignis löst keine Warnung aus.
Ich habe in den Chrome-Entwicklungstools jedes Tabs sogar Haltepunkte in das JavaScript eingefügt, aber ich kann niemals die "onStorageEvent" -Funktion in einem geöffneten Tab finden.
Was mache ich falsch?
<!DOCTYPE html>
<html>
<head>
<title>Tab1</title>
</head>
<body>
<button id="add" onclick="localStorage.setItem('tab','changed')">Add</button>
<button id="clear" onclick="localStorage.clear()">Clear</button>
<script type="text/javascript">
function onStorageEvent() {
alert("storage event: " + localStorage.getItem("tab"));
}
window.addEventListener('storage', onStorageEvent, false);
</script>
</body>
</html>
Dank Dekel getestet . Sobald ich es meinem Webserver hinzugefügt habe, haben sich die Dinge wie gewünscht verhalten! – freak