quantum español javascript firefox safari html5

javascript - español - firefox quantum



¿Funciona "localStorage" en Firefox solo cuando la página está en línea? (2)

Así que estoy jugando con HTML 5 y localStorage y me doy cuenta de que mis valores solo se almacenan cuando ejecuto la página en Firefox en el host local (es decir, http://127.0.0.1:8000/test/index.html ), pero cuando ejecuto el archivo localmente (file: /// C: /test/index.html) mis valores no se almacenan. Safari 4 no tiene problemas con ambas configuraciones. Entonces, ¿alguien sabe si esto es por diseño?> DOM Storage en el Mozilla Developer Center

(Firefox 2 permitió el acceso a objetos de almacenamiento más arriba en la jerarquía del dominio que el documento actual. Esto ya no está permitido en Firefox 3, por razones de seguridad. Además, esta adición propuesta al HTML 5 se ha eliminado de la especificación HTML 5 a favor de localStorage, que se implementa en Firefox 3.5.)

O si hay una solución alternativa?
Me pregunto porque el almacenamiento fuera de línea que funciona solo en línea suena tonto: P

Si alguien se pregunta, el código es tan fácil como es posible:

function save() { localStorage.setItem(''foo'',''bar''); } function load() { var test = localStorage.getItem(''foo''); alert(test); }


Bueno, el documento vinculado dice que

localStorage es lo mismo que globalStorage [location.hostname], con la excepción de tener un alcance de origen HTML5 (esquema + nombre de host + puerto no estándar)

No quiero decir que entiendo al 100% lo que eso significa, pero el bit entre corchetes sugeriría que la URL necesita tener ciertas propiedades, en particular que el esquema y el nombre de host son los que Firefox considera un origen de HTML 5. Sospecho que las URL de file:/// no coinciden con esto, mientras que su http://127.0.0.1/ sí lo hace.

editar : Mirando la descripción del W3C de la propiedad Origin , el paso 7 parece que podría estar causando el problema. Dependiendo de cómo se implemente el manejo localStorage , puede estar esperando un 3-tuple como lo devuelve el paso 12, pero para un file:// URL, el valor de retorno puede ser casi cualquier cosa.

Entonces, eh, supongo que es por diseño. En la reflexión, lo más probable es que esto no sea realmente por diseño; no hay ninguna razón por la cual localStorage no debería funcionar para file:// URLs. Podría ser solo un caso de la salida de una implementación específica del navegador que no coincida con las expectativas de otro.

En cuanto a las soluciones, ¿ globalStorage no haría lo que usted quiere aquí?