2010-10-04 10 views
5

Me gustaría tener un archivo html con JavaScript, que (archivo) pueda modificar su contexto. En más detalles, me lo imagino así. Tengo un archivo html, que abro con un navegador. Tengo un área de texto donde escribo mi texto y presiono el botón de enviar. Como resultado de eso, el contexto del formulario se guardó en algún lugar del archivo html. ¿Cuál es la forma más fácil y estable de hacer eso?Archivo html-JavaScript auto-modificable

+1

Si está hablando de almacenamiento permanente, necesitará un lenguaje o servicio del lado del servidor para esto. ¿Puedes usar alguno? –

+2

Me gustaría hacer todo en mi computadora local. Sé que es posible sin un lenguaje del lado del servidor. A un ejemplo de trabajo, puedo mencionar a TiddlyWiki. – Roman

+0

¿Por qué no lo miras entonces? –

Respuesta

8

TiddlyWiki guarda todo su contenido en un nuevo archivo local html-with-javascript en formas específicas del navegador. Esto se debe a que normalmente no se permite escribir en el disco duro local en javascript, por razones de seguridad. Si le interesa específicamente cómo TiddlyWiki escribe el archivo, compruebe the source code, comenzando con:

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

Esto requiere que el usuario explícitamente anular las advertencias de seguridad. Cuando lo probé en Firefox, tuve que hacerlo varias veces. Esta no es una buena práctica, ya que un usuario estaría muy tentado de comprobar "Recordar esta decisión" y, potencialmente, exponerse a malware en el futuro.

Como dijo otra persona, una mejor idea es usar el almacenamiento del lado del cliente, como las nuevas características en HTML 5 (disponible en los navegadores más nuevos), o una biblioteca más portátil como Google Gears; o quizás mejor, YUI's StorageUtility, que se abstrae a un nivel superior y utiliza HTML 5, Google Gears o SWF, según lo que esté disponible.

+0

Tenga en cuenta que la discusión sobre la portabilidad de las opciones de almacenamiento del lado del cliente está desactualizada. – LarsH

Cuestiones relacionadas