2011-09-10 14 views
10

Estoy tratando de hacer un setItem mega-simple y getItem usando almacenamiento local HTML5. Simplemente parece que no funciona. Esto funciona:localStorage.setItem no persiste en la actualización

$(document).ready(function() { 
    localStorage.setItem('keyA', 'valueA'); 
    var testA = localStorage.getItem('keyA'); 
    alert(testA); 
}); 

Emite un cuadro de alerta que dice 'valorA'. Pero cuando comento la línea 2 (que establece el valor del artículo) y actualizo la página, solo alerta 'nulo'.

¿Por qué el valor no persiste? Es como si simplemente no se estuviera almacenando en absoluto.

El navegador es Firefox 6, por lo que no hay problema. ¿Podría ser algo relacionado con llamarlo en el documento jquery. ¿Listo? Busqué en Google pero no pude ver nada al respecto.

Si alguien pudiera superar este obstáculo inicial estaría muy agradecido, ¡gracias!

+0

No puedo reproducir en Chrome. – pimvdb

+0

Hmm ... también funciona para mí en Chrome, pero no en Firefox 6? – Dan

+0

¿Alguien más puede probar esto en Firefox 6.0.2 (última versión)? Estoy empezando a pensar que hay una forma diferente de hacerlo en esta versión de Firefox o es un error :(He intentado con tantos ejemplos diferentes de almacenamiento local pero ninguno parece persistir en Firefox 6.0.2. – Dan

Respuesta

12

Bien, después de mucha frustración tengo la solución. Básicamente, estaba ejecutando esto localmente desde el sistema de archivos como una prueba 'rápida' de concepto. No funcionó en Firefox ni en IE9, pero funcionó en Chrome.

Lo que terminé haciendo fue probar esto en un dominio real, y eso parece haber hecho el truco.

Así que la conclusión que puedo extraer es que localStorage en Firefox (6.0.2 al menos) e IE9 no funciona cuando se ejecuta en una ruta del sistema de archivos. Lo hace en Chrome. Firefox e IE9 requieren un dominio 'apropiado' para ejecutar, presumiblemente porque son más estrictos que Chrome en la forma en que asocian el objeto localStorate a un 'dominio' (en Chrome no es necesario que sea un dominio como tal).

¡Espero que esto haya ayudado a las personas, ya que me siento frustrado! :)

+2

Estos pueden ser de interés: [¿Está "localStorage" en Firefox solo trabajando cuando el la página está en línea?] (http://stackoverflow.com/questions/1492942/is-localstorage-in-firefox-only-working-when-the-page-is-online) y [Error 507361 - localStorage no funciona en el archivo: /// documentos] (https://bugzilla.mozilla.org/show_bug.cgi?id=507361). –

Cuestiones relacionadas