5

Я использую механизм Safari webkit вместе с HTML5 и JS для создания автономного приложения. Теперь я использую массив sessionStorage для хранения состояния моего приложения (симуляции).Обработчик событий хранения HTML5/JS

хранения данных отлично работает с инспектором функции работают отлично, это обработчик событий, который не отвечает

тест preformd по Anurag в http://jsfiddle.net/pvRgH/ также не работает здесь

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

ответ

0

Могли вы предоставляете еще один код для того, как вы храните ключи? Это работает для меня на Safari - http://jsfiddle.net/pvRgH/

+0

Ссылка предоставлена ​​вам не дал никаких результатов. Проверьте обновленный вопрос для получения дополнительного кода – Ken

+0

Итак, не появилось предупреждение, указывающее, что обработчик событий хранения был вызван для вас? Какую версию Safari вы тестируете? – Anurag

+0

Ничего не происходит Я запускаю Safari 5.0 (6533.16) MacOSX 10.6.3 – Ken

0

«хранилище» событие произошло на другой вкладке в браузере. Когда вы меняете хранилище на одной странице и addEventLister также на этой странице, окно не может поймать сообщение.

, например

У вас есть две страницы, pageOne изменение хранения, pageTwo поймает сообщение «хранения» и справиться с этим, но pageOne не смог поймать сообщение.

Смежные вопросы