Ich muss benachrichtigt werden, wenn localStorage
geändert wird. Dieser Code funktioniert in Firefox 24, funktioniert aber nicht in Chrome 29 (oder 30) oder in IE 10. Er funktioniert auch auf einem Live-Server, aber nicht beim Testen mit einer lokalen Datei (file:///
). HierLocalStorage-Ereignis-Listener in Chrome für lokale Datei nicht ausgelöst
ist der Code:
<!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>
Was ist das Problem mit diesem in Chrome? Ich öffne zwei Tabs wie erforderlich.
Ich lese Spezifikation von W3C, ich glaube, ich verstehe es, mein Problem ist, ich öffne zwei Tab, in Tab2, änderte ich den Wert von localStorage, aber Tab1 haben keine passieren. Hast du Chrome Version 29 getestet? –
@TrungHuynh bitte stellen Sie eine Geige zur Verfügung, mit der ich testen kann. – K3N
Hier ist es! http://jsfiddle.net/4ftxj/! Aber es braucht zwei Registerkarten für die Ausführung vollständig, weil die Spezifikation folgen, kann es nicht auf der Registerkarte hören, die localStorage ändern. –