javascript - HTML5/JS 存储事件处理器

标签 javascript html event-handling dom-events addeventlistener

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

存储数据与检查器一起工作正常,函数工作正常,只是事件处理程序没有响应。

Anuraghttp://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";
    }
}

最佳答案

存储事件处理程序仅在存储事件从另一个窗口触发时触发。

How can I get an event to fire every time localStorage is updated in Safari 5+?

关于javascript - HTML5/JS 存储事件处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055013/

相关文章:

javascript - 电子邮件正文变量

javascript - 使用 for...of 循环删除数组项

javascript - 需要使用 HTML5 canvas 和 JavaScript 创建一个循环

javascript - 无法运行 JQuery 函数

html - 将变量应用于元素jquery

javascript - jQuery 中如何检测当前元素?

javascript - Angular.js 基础模式问题

javascript - 使用javascript根据元素值更改图像src

html - Angular4中的onScroll事件触发函数

Laravel 5 - 事件处理程序和监听器之间的混淆