Wie kann ich ein Ereignis jedes Mal auslösen lassen, wenn localStorage in Safari 5 + aktualisiert wird?

Ich habe versucht, @ zu folgdie Beispiele auf der Safari Developer Site.

Die Dokumentation schlägt vor, einen Ereignis-Listener wie folgt hinzuzufügen:

window.addEventListener('storage', storage_handler, false);

Und dann setzen Sie Ihre Handler-Funktion wie folgt:

function storage_handler(evt)
{
    alert('The modified key was '+evt.key);
    alert('The original value was '+evt.oldValue);
    alert('The new value is '+evt.newValue);
    alert('The URL of the page that made the change was '+evt.url);
    alert('The window where the change was made was '+evt.source);
}

Aber ich kann diesen Code nicht auf meinem Computer (OS X 10.6, Safari 5.01) oder auf Safari auf meinem iPhone 3GS (iOS 4.02) zum Laufen bringen.

Dieser Artike bietet eine separate Methode:

window.onload = function() {
    ...
    document.body.setAttribute("onstorage", "handleOnStorage();");
}

function handleOnStorage() {
    if (window.event && window.event.key.indexOf("index::") == 0){
        $("stats").innerHTML = "";
        displayStats();
    }
}

Aber ich hatte auch kein Glück damit.

Mache ich etwas falsch? Ist das ein Bug?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage