我需要在localStorage
发生更改时收到通知。此代码在Firefox 24中正常工作,但在Chrome 29(或30)或IE 10中不起作用。它也适用于实时服务器,但不适用于使用本地文件(file:///
)进行测试的情况。localStorage事件侦听器不会在本地文件的Chrome中触发
下面是代码:
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#submit').click(function() {
console.log('Clicked');
if($('#username').val() != "")
localStorage.setItem('someItem', 'someValue');
});
$(window).bind('storage', function(e) {
alert('change');
});
});
</script>
</head>
<body>
<input type="text" id="username" name="username" value="" />
<a href="#" id="submit">Click me</a>
<p id="result"></p>
</body>
</html>
这有什么在Chrome中的问题?我需要打开两个标签。
我从W3C阅读说明书,我想我明白了,我的问题是我打开两个选项卡,在TAB2,我改变的localStorage的值,但TAB1没有任何发生。您是否尝试过Chrome版本29? –
@TrungHuynh请提供一个我可以测试的小提琴。 – K3N
这是它! http://jsfiddle.net/4ftxj/!但它需要两个标签才能完全运行,因为遵循规范,因此无法在更改localStorage的选项卡上进行监听。 –