localStorage.getItem возвращает старые данные в IE 9

Следующий пример должен быть запущен в 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'); и в Вкладка 1 войдет в тест , тогда он правильно показывает тест в моем

, но в моем Tab 2 он пишет только tes

. Теперь, если я изменю код, чтобы использовать var newValue = e.newValue; и вкладка 1, и вкладка 2 записывают тест в < p id = "fromEvent">

Может кто-нибудь объяснить мне, почему они возвращают разные результаты? Я также тестировал этот код в Google Chrome и Firefox, и у них нет этой проблемы.

Для записи, это работало на Win 7 Ultimate 64 SP1 с IIS Express и с использованием jquery-1.5.1. и ошибка присутствует как в 32-битной, так и в 64-битной версиях IE9

Редактировать Протестировано с обычным IIS 7.5, тот же результат

Edit 2 Было бы неплохо, если бы кто-нибудь мог подтвердить, что это происходит с ними?

7
задан Teemu Ikonen 19 February 2012 в 08:30
поделиться