2009-09-29 13 views
28

Quindi mi sto trastullando con HTML 5 e localStorage e sto notando che i miei valori vengono memorizzati solo quando eseguo la pagina in Firefox sull'host locale (ovvero http://127.0.0.1:8000/test/index.html), ma quando eseguo il file localmente (file : /// C: /test/index.html) i miei valori non vengono memorizzati. Safari 4 non ha problemi con entrambe le impostazioni. Quindi qualcuno sa se questo è di progettazione -.>DOM Storage on the Mozilla Developer Center"localStorage" in Firefox funziona solo quando la pagina è online?

(Firefox 2 è permesso l'accesso allo stoccaggio oggetti più alto nella gerarchia di domini rispetto al documento corrente Questo non è più consentito in Firefox 3, per motivi di sicurezza. Inoltre, questo aggiunta proposta di HTML 5 è stato rimosso dal HTML 5 specifica a favore di localStorage, che è implementato in Firefox 3.5.)

01.235.

O se c'è una soluzione alternativa?
Mi chiedo perché archiviazione non in linea che funziona solo in linea suona stupido: P

Se qualcuno si chiede, il codice è facile come si arriva:

function save() 
{ 
localStorage.setItem('foo','bar'); 
} 

function load() 
{ 
var test = localStorage.getItem('foo'); 
alert(test); 
} 
+2

Ciao, ti sto scrivendo per l'anno 2011. Non è ancora stato risolto! https://bugzilla.mozilla.org/show%5Fbug.cgi?id = 507361 –

+0

... ma sembra funzionare bene offline con chrome – lapinferoce

+1

Grazie a dio ho trovato questo ... Ho cercato di eseguire il debug in Firefox e mi stavo chiedendo dove ho sbagliato perché non riuscivo a vedere niente di sbagliato con il mio codice . Ha funzionato in IE e Chrome mentre lavorava con file: // URL ma Firefox non funzionava. Appena l'ho messo su un server, ha funzionato bene. –

risposta

22

Sembra un bug: Bug 507361 - localStorage doesn't work in file:/// documents
La speranza è risolta presto!

2011-09-13: risolto bug, implementato in 'Mozilla8'. Ho provato questo con Firefox 8 e funziona ora.

+3

Nel frattempo puoi utilizzare Chrome per testare i tuoi script offline, poiché non ha questo bug. – lapo

+0

Non posso controllare questo adesso ma penso che questa sia la risposta definitiva! – hobotron

21

Ebbene, il documento collegato fa dire che

localStorage è uguale globalStorage [location.hostname], con l'eccezione di essendo ambito a un'origine HTML5 (schema + hostname + porta non standard)

Non voglio affermare che capisco al 100% cosa significa, ma il bit tra parentesi suggerisce che l'URL deve avere determinate proprietà - in particolare che lo schema e il nome host sono ciò che Firefox considera un HTML 5 origine. Sospetto che gli URL file:/// non corrispondano a questo, mentre lo fa il tuo http://127.0.0.1/.

modifica: Guardando ildel W3C, il passaggio 7 sembra che potrebbe causare il problema. A seconda di come è stata implementata la gestione dello localStorage, è probabile che ci si aspetterà una tupla di 3 come restituita dal punto 12, ma per un URL file:// il valore restituito potrebbe essere qualsiasi cosa.

Quindi, er, suppongo che sia di progettazione. In base alla riflessione, è probabile che questo non sia realmente di progettazione; non vi è alcun motivo per cui localStoragenon dovrebbe funzionare per gli URL file://. Potrebbe essere solo il caso dell'output di un'implementazione specifica del browser che non corrisponde alle aspettative di un'altra.

Per quanto riguarda i rimedi alternativi, globalStorage non farebbe ciò che desideri qui?

Problemi correlati