HTML5 / JS-storage-event-handler
Ich bin mit safari-webkit-engine zusammen mit HTML5 und JS zu erstellen Sie eine offline-Applikation jetzt bin ich mit der sessionStorage array zum speichern der status meiner Bewerbung(simulation).
die Speicherung von Daten gut funktioniert mit dem Inspektor die Funktionen arbeiten gut, es ist der event-handler, der nicht reagiert
den test preformd von Anurag
bei http://jsfiddle.net/pvRgH/ auch nicht funktioniert, hier
window.addEventListener('storage', storageEventHandler, false);
function storageEventHandler(evt){
alert("storage event called key: " + evt.key );
switch(evt.key){
case 'bat1':
case 'bat2': batteryDCMeter(); break;
case 'extPowerOn': rechargeBattery(); break;
}
}
function load()
{
dashcode.setupParts();
//set HTML 5 key/value's
sessionStorage.setItem('bat1', 'OFF');
sessionStorage.setItem('bat2', 'OFF');
sessionStorage.setItem('bat1DC', '26.2');
sessionStorage.setItem('bat2DC', '26.2');
}
function bat1OnOff(event)
{
if(sessionStorage['bat1'] == 'OFF'){
sessionStorage['bat1'] = 'ON';
}else{
sessionStorage['bat1'] = "OFF";
}
}
function bat2OnOff(event)
{
if(sessionStorage['bat2'] == 'OFF'){
sessionStorage['bat2'] = 'ON';
}else{
sessionStorage['bat2'] = "OFF";
}
}
InformationsquelleAutor Ken | 2010-06-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Speicherung Ereignis-Handler, die nur ausgelöst wird, wenn das Speicher-Ereignis wird ausgelöst, aus einem anderen Fenster.
Wie kann ich ein Ereignis auslösen, jedes mal, wenn "localStorage" ist aktualisiert Safari 5+?
InformationsquelleAutor jmease
Könnten Sie ein paar mehr code, wie Sie speichern die Schlüssel? Es funktioniert bei mir auf Safari - http://jsfiddle.net/pvRgH/
Es gibt also keine Warnung aufspringen Angabe der storage-event-handler aufgerufen wurde, für Sie? Welche version von Safari werden Sie testen diese auf?
Nein, nichts ist passiert, ich bin mit Safari 5.0(6533.16) MacOSX 10.6.3
Es passiert nichts für mich (Safari 5.0.3, Chrome 10)
InformationsquelleAutor Anurag
'storage' - Ereignis ist aufgetreten, die von der anderen Registerkarte im browser. Wenn Sie die Speicherung in einer Seite und addEventLister auch auf dieser Seite , das Fenster kann nicht fangen die Meldung.
beispielsweise
Haben Sie zwei Seite
pageOne ändern Sie den Speicher , pageTwo fangen die 'Speicher' - Meldung und damit umgehen, aber pageOne, konnte nicht fangen die Meldung.
InformationsquelleAutor chenhui5416