Ví dụ sau cần chạy trong IE 9 và trong ít nhất hai tab khác nhau.localStorage.getItem trả về dữ liệu cũ trong IE 9
<input type="text" name="data" value="" placeholder="change me" id="data" />
<p id="fromEvent">Waiting for data via <code>storage</code> event...</p>
<script type="text/javascript">
window.addEventListener("storage", function (e) {
if (e.key == 'storage-event-test') {
var newValue = localStorage.getItem('storage-event-test'); // returns old value
// var newValue = e.newValue; // returns new value
$('#fromEvent').html(newValue);
}
}, false);
$('#data').live('keyup', function() {
var changedValue = this.value;
$('#fromEvent').html(changedValue);
localStorage.setItem('storage-event-test', changedValue);
});
</script>
Nếu nó cố gắng để có được những dữ liệu với var newValue = localstorage.getItem('storage-event-test');
và trong Tab 1 vào test
sau đó nó cho thấy một cách chính xác test
trong <p id="fromEvent">
của tôi, nhưng trong Tab của tôi 2 nó chỉ viết tes
Bây giờ nếu Tôi thay đổi mã để sử dụng var newValue = e.newValue;
cả hai Tab 1 & Tab 2 viết test
trong <p id="fromEvent">
Ai đó có thể giải thích cho tôi, tại sao họ trả lại các kết quả khác nhau? Tôi cũng đã thử nghiệm mã này trong Google Chrome và Firefox và họ không gặp sự cố này.
Chỉ để ghi lại, điều này đã chạy trên chiến thắng 7 Ultimate 64 SP1 với IIS Express và sử dụng jquery-1.5.1. và lỗi này là trong cả hai phiên bản 32 và 64 bit của IE9
Sửa Thử nghiệm với kết quả tương tự bình thường IIS 7,5
Chỉnh sửa 2 Sẽ được tốt đẹp nếu ai đó có thể khẳng định rằng điều này xảy ra họ đến?
Đây vẫn là sự cố trong Internet Explorer 11. – Sonny