Следующий пример должен быть запущен в IE 9 и по меньшей мере в двух разных вкладках.localStorage.getItem возвращает старые данные в 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>
Если попытаться получить данные с var newValue = localstorage.getItem('storage-event-test');
и в Tab 1 входит test
то правильно test
показывает в моем <p id="fromEvent">
но в моем Tab 2 он пишет только tes
Теперь, если Я изменяю код для использования var newValue = e.newValue;
обе Tab 1 & Tab 2 пишет test
в <p id="fromEvent">
Может кто-нибудь объяснить мне, почему они возвращают разные результаты? Я также проверил этот код в Google Chrome и Firefox, и у них нет этой проблемы.
Просто для записи это было выполнено на выигрыше 7 Ultimate 64 SP1 с IIS Express и с использованием jquery-1.5.1. и ошибка в обоих 32 и 64 битной версии IE9
Edit Испытано с нормальным IIS 7.5 тот же результат
Edit 2 Было бы хорошо, если бы кто-то может подтвердить, что это происходит с их?
Это все еще проблема в Internet Explorer 11. – Sonny