以下示例需要在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');
和標籤來獲取數據1進入test
那麼正確test
顯示在我的<p id="fromEvent">
但在我標籤2 只寫tes
現在,如果我更改代碼以使用var newValue = e.newValue;
兩個選項卡1 &選項卡2寫入test
在<p id="fromEvent">
有人可以向我解釋,他們爲什麼會返回不同的結果? 我也在Google Chrome和Firefox中測試了這段代碼,但他們沒有這個問題。
只是爲了記錄,這是運行在與IIS Express和使用jQuery 1.5.1勝7終極版64 SP1。和bug是在兩個32位和64位版本的IE9的
編輯 正常IIS 7.5相同的結果測試
編輯2 將是很好,如果有人可以證實,這是發生在他們去?
這仍然是Internet Explorer 11中的一個問題。 – Sonny 2014-11-26 19:54:17