以下示例需要在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