5

Używam silnika safari webkit wraz z HTML5 i JS do tworzenia aplikacji offline teraz używam tablicy sessionStorage do przechowywania statusu mojej aplikacji (symulacja).Obsługa zdarzeń magazynowania HTML5/JS

przechowywanie danych współpracuje z inspektorem funkcje działają dobrze to procedura obsługi zdarzenia, które nie reaguje

testy preformd przez Anurag na http://jsfiddle.net/pvRgH/ również nie działa tutaj

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"; 
    } 
} 

Odpowiedz

0

Could podajesz więcej kodu na przechowywanie kluczy? Działa dla mnie na Safari - http://jsfiddle.net/pvRgH/

+0

Podany link kod nie daje żadnych wyników. Sprawdź zaktualizowane pytanie, aby uzyskać więcej kodu. – Ken

+0

. Nie pojawił się żaden alert wskazujący, że funkcja obsługi zdarzenia pamięci została wywołana? W jakiej wersji Safari to testujesz? – Anurag

+0

Nic się nie dzieje Używam Safari 5.0 (6533.16) MacOSX 10.6.3 – Ken

0

do „składowanie” zdarzenie miało miejsce przez drugą zakładkę w przeglądarce. Gdy zmienisz miejsce na jednej stronie i dodasz na tej stronie także właściwość AddEventLister, okno nie będzie mogło przechwycić wiadomości.

np

masz dwie strony, pageOne zmiana przechowywanie, pageTwo złapie komunikat „przechowywanie” i sobie z tym poradzić, ale nie mógł złapać pageOne wiadomość.

Powiązane problemy