El siguiente ejemplo debe ejecutarse en IE 9 y en al menos dos pestañas diferentes.localStorage.getItem devuelve datos antiguos en 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>
Si se trata de obtener los datos con var newValue = localstorage.getItem('storage-event-test');
y en Tab 1 entra test
entonces se muestra correctamente test
en mi <p id="fromEvent">
pero en mi Tab que sólo escribe tes
Ahora bien, si Cambio el código para usar var newValue = e.newValue;
ambos Tab 1 & Tab 2 escribe test
en <p id="fromEvent">
¿Puede alguien explicarme por qué devuelven resultados diferentes? También he probado este código en Google Chrome y Firefox, y no tienen este problema.
Solo para el registro, esto se ejecutaba en un win 7 Ultimate 64 SP1 con IIS Express y con jquery-1.5.1. y el error es tanto en la versión de 32 y 64 bits de IE9
Editar Probado con IIS 7.5 mismo resultado normal
Editar 2 Sería bueno si alguien puede confirmar que esto está ocurriendo a ¿a ellos?
Esto todavía es un problema en Internet Explorer 11. – Sonny