Javascript HTML5/JS存储事件处理程序

Javascript HTML5/JS存储事件处理程序,javascript,html,event-handling,dom-events,addeventlistener,Javascript,Html,Event Handling,Dom Events,Addeventlistener,我正在使用SafariWebKit的引擎以及HTML5和JS来创建一个离线应用程序,现在我正在使用sessionStorage数组来存储我的应用程序的状态(模拟) 存储数据与检查器配合得很好,函数配合得很好,是事件处理程序没有响应 Anuragat执行的测试在此也不起作用: window.addEventListener('storage', storageEventHandler, false); function storageEventHandler(evt){ alert(&qu

我正在使用SafariWebKit的引擎以及HTML5和JS来创建一个离线应用程序,现在我正在使用
sessionStorage
数组来存储我的应用程序的状态(模拟)

存储数据与检查器配合得很好,函数配合得很好,是事件处理程序没有响应

Anurag
at执行的测试在此也不起作用:

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

你能提供一些关于如何存储钥匙的代码吗?它在Safari上对我有效-

只有在存储事件从另一个窗口触发时,存储事件处理程序才会启动


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

比如说

你有两页,
第一页更改存储,第二页将捕获“存储”消息并进行处理,但第一页无法捕获消息。

要在多个选项卡之间进行通信,可以使用存储事件。将数据项存储在本地存储中,您将知道本地存储已更新

查看代码

window.addEventListener(“存储”,storageEventHandler,false);
函数storageEventHandler(evt){
警报(“存储更新”);
}
函数clickme(){
setItem(“someKey”、“someValue”);
}

单击我
您提供的代码链接不会给出任何结果。检查更新的问题以了解更多代码,这样就不会出现提示存储事件处理程序已为您调用的警报?您在哪一版本的Safari上测试此功能?没有发生任何事情我正在运行Safari 5.0(6533.16)MacOSX 10.6.3我也不会发生任何事情(Safari 5.0.3,Chrome 10)