以下示例需要在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>
Run Code Online (Sandbox Code Playgroud)
如果它试图获取数据var newValue = localstorage.getItem('storage-event-test');并在标签1输入test然后它test 在我的正确显示<p id="fromEvent">但在我的标签2中
它只写tes …
Internet Explorer 10有时会在访问新值之前触发窗口"storage"事件.我有一个"存储"事件的监听器,它对正在设置的新数据作出反应,但有时无法访问它.这尤其成问题,因为监听器无法对实际的新数据做出反应.
为什么会出现这个问题,我该怎么做才能解决?