5

Tôi đang sử dụng công cụ safari webkit cùng với HTML5 và JS để tạo ứng dụng ngoại tuyến ngay bây giờ tôi đang sử dụng mảng sessionStorage để lưu trữ trạng thái của ứng dụng (mô phỏng).Trình xử lý sự kiện lưu trữ HTML5/JS

việc lưu trữ dữ liệu hoạt động tốt với thanh tra các chức năng hoạt động tốt đó là xử lý sự kiện mà không được đáp ứng

kiểm tra preformd bởi Anurag tại http://jsfiddle.net/pvRgH/ cũng không làm việc ở đây

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

Trả lời

0

Could bạn cung cấp thêm một số mã cho cách bạn lưu trữ khóa? Nó hoạt động với tôi trên Safari - http://jsfiddle.net/pvRgH/

+0

Liên kết bạn cung cấp mã không cung cấp bất kỳ kết quả nào. Kiểm tra câu hỏi đã cập nhật để biết thêm mã – Ken

+0

Vì vậy, không có cảnh báo nào xuất hiện cho biết trình xử lý sự kiện lưu trữ được gọi cho bạn? Phiên bản Safari nào bạn đang thử nghiệm này? – Anurag

+0

Không có gì xảy ra Tôi đang chạy Safari 5.0 (6533.16) MacOSX 10.6.3 – Ken

0

sự kiện 'lưu trữ' xảy ra bởi tab khác trong trình duyệt. Khi bạn thay đổi lưu trữ trong một trang và addEventLister cũng trong trang này, cửa sổ không thể bắt được thông báo.

ví dụ

Bạn có hai trang, pageOne thay đổi lưu trữ, pageTwo sẽ bắt thông báo 'lưu trữ và xử lý này, nhưng pageOne không thể nắm bắt được thông điệp.

Các vấn đề liên quan