2010-10-04 15 views
5

Mi piacerebbe avere un file html con JavaScript, che (file) è in grado di modificare il suo contesto. Più in dettaglio, lo immagino così. Ho un file html, che apro con un browser. Ho un'area di testo lì dove scrivo il mio testo e premo il pulsante di invio. Di conseguenza, il contesto del modulo salvato da qualche parte nel file html. Qual è il modo più semplice e stabile per farlo?File html-JavaScript auto-modificante

+1

Se si sta parlando di spazio di archiviazione permanente, è necessario un linguaggio o un servizio lato server. Puoi usare qualsiasi? –

+2

Mi piacerebbe fare tutto sul mio computer locale. So che è possibile senza una lingua di supporto. Un esempio funzionante posso menzionare TiddlyWiki. – Roman

+0

Perché non dai un'occhiata allora? –

risposta

8

TiddlyWiki salva tutto il suo contenuto in un nuovo file html-con-javascript locale in modi specifici del browser. Questo perché la scrittura sul disco rigido locale non è normalmente consentita in javascript, per motivi di sicurezza. Se siete interessati a particolare come TiddlyWiki scrive il file, controllare the source code, a partire da:

function saveFile(fileUrl,content) 
{ 
    var r = mozillaSaveFile(fileUrl,content); 
    if(!r) 
     r = ieSaveFile(fileUrl,content); 
    if(!r) 
     r = javaSaveFile(fileUrl,content); 
    return r; 
} 

Questo richiede all'utente di ignorare in modo esplicito gli avvisi di protezione. Quando l'ho provato in Firefox, ho dovuto farlo diverse volte. Questa non è una buona pratica, in quanto un utente sarebbe fortemente tentato di verificare "Ricorda questa decisione" e potenzialmente esporsi al malware in futuro.

Come ha detto qualcun altro, un'idea migliore è utilizzare l'archiviazione lato client come le nuove funzionalità in HTML 5 (disponibile nei browser più recenti) o una libreria più portatile come Google Gears; o forse meglio, YUI's StorageUtility, che riassume un livello superiore e utilizza HTML 5, Google Gears o SWF a seconda di ciò che è disponibile.

+0

Nota che la discussione sulla portabilità delle opzioni di archiviazione lato client non è aggiornata. – LarsH