5

我使用safari webkit的引擎与HTML5和JS一起创建离线应用程序,现在我正在使用sessionStorage数组来存储我的应用程序(模拟)的状态。HTML5/JS存储事件处理程序

存储数据的正常工作与督察职能做工精细那就是没有响应

事件处理程序在http://jsfiddle.net/pvRgH/Anurag preformd测试也已经不在这里工作

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 2010-06-16 16:17:51

+0

因此没有警报弹出,表示存储事件处理程序已被调用?你在测试这个版本的Safari吗? – Anurag 2010-06-16 16:42:11

+0

没有任何事情发生我正在运行Safari 5.0(6533.16)MacOSX 10.6.3 – Ken 2010-06-16 16:44:48

0

“存储装置”事件在浏览器中的其他选项卡发生。当您在一个页面中更改存储并在此页面中添加EventEvent时,该窗口无法捕获该消息。

例如

你有两页, PAGEONE改变存储,pageTwo将赶上“存储装置”的消息,并处理这个问题,但PAGEONE无法赶上的消息。