我需要在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的選項卡上進行監聽。 –