![]() |
| |||||||
| Registrarse | Preguntas Frecuentes | Lista de Foreros | Calendario | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
| | LinkBack | Herramientas | Desplegado |
| |||
| Buenas. Resulta que últimamente tenemos algunos problemas en el servidor de nuestra página, y como no podemos evitar que el servidor mysql se caiga de vez en cuando (está fuera de nuestra mano intentar solucionarlo) se nos ocurrió hacer algo divertido cuando la BD no funciona. Así empecé a hacer el aborto este: http://la-aventura.net/problemas.html Intenta recrear una aventura conversacional cutre, recogiendo los eventos de las pulsaciones de teclas con javascript. El problema viene cuando hago un document.write(); llamado por un evento de pulsación de tecla. Borra todo lo anterior. ¿Extraño? Sí, pero se comporta igual en Konqueror y en Firefox (no probado en IE, Opera u otros). Así que hice lo siguiente: Por cada linea, crea un DIV con un id único y lo que hago es cambiar su contenido. Aún así, cada vez que quiero crear un nuevo div tengo que volver a escribir todo lo anterior, así que lo voy acumulando en una variable llamada "contenido". El problema viene cuando le meto un estilo, y veo horrorizado como al hacer el document.write(); se lo carga. Parece que no sólo se carga el contenido del <body> ¡sino toda la página!. Metiendo un nuevo <body> con sus estilos dentro de la variable "contenido" hace que funcione bien en Konqueror. Sin embargo, escribirlo todo en Firefox es TERRIBLEMENTE LENTO y una vez escrita una linea se queda cargando algo (cursor de que está pensando) y no hace caso ya a los eventos de pulsaciones. ¿Voy a tener que guardar todo el contenido del "head" también dentro de la variable contenido? ¿No se puede evitar que esos document.write(); borren lo anterior? ¿Es un bug del Firefox o es normal, al cargarse las funciones de JS? ¿Alguien me puede dar algún consejo? Gracias, y perdón por el tocho ;-) |
| | ||||
| ||||
| |
| |||
| Jorge S. de Lis escribió: > Intenta recrear una aventura conversacional cutre, recogiendo los eventos de > las pulsaciones de teclas con javascript. El problema viene cuando hago un > document.write(); llamado por un evento de pulsación de tecla. Borra todo > lo anterior. Ufff estoy hablando de memoria, pero creo que tendrías que hacer algo asi: Crea un div llamado "texto" (por ejemplo). Dentro de él introduciremos lo que queramos añadir con el document.write Ahora el tema: <script language='javascript'> function cambia() { document.getElementById('texto').innerHTML += "Adios"; } </script> <body> <div id='texto' onclick='cambia()'> Hola. </div> </body> Utiliza innerHTML para escribir dentro del div. Fijate que si pones "=" sustituye todo el texto de dentro del div, pero si pones "+=" lo añade. innerHTML sirve para añadir texto y etiquetas HTML, si solo vas a introducir texto usa innerText. Un saludo, y metele caña a la aventura conversacional (sniff, sniff que recuerdos). Ya avisaras de los progresos :P |
| |||
| Jorge S. de Lis escribió: > Intenta recrear una aventura conversacional cutre, recogiendo los eventos de > las pulsaciones de teclas con javascript. El problema viene cuando hago un > document.write(); llamado por un evento de pulsación de tecla. Borra todo > lo anterior. Ufff estoy hablando de memoria, pero creo que tendrías que hacer algo asi: Crea un div llamado "texto" (por ejemplo). Dentro de él introduciremos lo que queramos añadir con el document.write Ahora el tema: <script language='javascript'> function cambia() { document.getElementById('texto').innerHTML += "Adios"; } </script> <body> <div id='texto' onclick='cambia()'> Hola. </div> </body> Utiliza innerHTML para escribir dentro del div. Fijate que si pones "=" sustituye todo el texto de dentro del div, pero si pones "+=" lo añade. innerHTML sirve para añadir texto y etiquetas HTML, si solo vas a introducir texto usa innerText. Un saludo, y metele caña a la aventura conversacional (sniff, sniff que recuerdos). Ya avisaras de los progresos :P |
| |||
| Jorge S. de Lis escribió: > Intenta recrear una aventura conversacional cutre, recogiendo los eventos de > las pulsaciones de teclas con javascript. El problema viene cuando hago un > document.write(); llamado por un evento de pulsación de tecla. Borra todo > lo anterior. Ufff estoy hablando de memoria, pero creo que tendrías que hacer algo asi: Crea un div llamado "texto" (por ejemplo). Dentro de él introduciremos lo que queramos añadir con el document.write Ahora el tema: <script language='javascript'> function cambia() { document.getElementById('texto').innerHTML += "Adios"; } </script> <body> <div id='texto' onclick='cambia()'> Hola. </div> </body> Utiliza innerHTML para escribir dentro del div. Fijate que si pones "=" sustituye todo el texto de dentro del div, pero si pones "+=" lo añade. innerHTML sirve para añadir texto y etiquetas HTML, si solo vas a introducir texto usa innerText. Un saludo, y metele caña a la aventura conversacional (sniff, sniff que recuerdos). Ya avisaras de los progresos :P |
| |||
| Jorge S. de Lis escribió: > Intenta recrear una aventura conversacional cutre, recogiendo los eventos de > las pulsaciones de teclas con javascript. El problema viene cuando hago un > document.write(); llamado por un evento de pulsación de tecla. Borra todo > lo anterior. Ufff estoy hablando de memoria, pero creo que tendrías que hacer algo asi: Crea un div llamado "texto" (por ejemplo). Dentro de él introduciremos lo que queramos añadir con el document.write Ahora el tema: <script language='javascript'> function cambia() { document.getElementById('texto').innerHTML += "Adios"; } </script> <body> <div id='texto' onclick='cambia()'> Hola. </div> </body> Utiliza innerHTML para escribir dentro del div. Fijate que si pones "=" sustituye todo el texto de dentro del div, pero si pones "+=" lo añade. innerHTML sirve para añadir texto y etiquetas HTML, si solo vas a introducir texto usa innerText. Un saludo, y metele caña a la aventura conversacional (sniff, sniff que recuerdos). Ya avisaras de los progresos :P |
| |||
| Jorge S. de Lis escribió: > Intenta recrear una aventura conversacional cutre, recogiendo los eventos de > las pulsaciones de teclas con javascript. El problema viene cuando hago un > document.write(); llamado por un evento de pulsación de tecla. Borra todo > lo anterior. Ufff estoy hablando de memoria, pero creo que tendrías que hacer algo asi: Crea un div llamado "texto" (por ejemplo). Dentro de él introduciremos lo que queramos añadir con el document.write Ahora el tema: <script language='javascript'> function cambia() { document.getElementById('texto').innerHTML += "Adios"; } </script> <body> <div id='texto' onclick='cambia()'> Hola. </div> </body> Utiliza innerHTML para escribir dentro del div. Fijate que si pones "=" sustituye todo el texto de dentro del div, pero si pones "+=" lo añade. innerHTML sirve para añadir texto y etiquetas HTML, si solo vas a introducir texto usa innerText. Un saludo, y metele caña a la aventura conversacional (sniff, sniff que recuerdos). Ya avisaras de los progresos :P |
| |||
| Jorge S. de Lis escribió: > Intenta recrear una aventura conversacional cutre, recogiendo los eventos de > las pulsaciones de teclas con javascript. El problema viene cuando hago un > document.write(); llamado por un evento de pulsación de tecla. Borra todo > lo anterior. Ufff estoy hablando de memoria, pero creo que tendrías que hacer algo asi: Crea un div llamado "texto" (por ejemplo). Dentro de él introduciremos lo que queramos añadir con el document.write Ahora el tema: <script language='javascript'> function cambia() { document.getElementById('texto').innerHTML += "Adios"; } </script> <body> <div id='texto' onclick='cambia()'> Hola. </div> </body> Utiliza innerHTML para escribir dentro del div. Fijate que si pones "=" sustituye todo el texto de dentro del div, pero si pones "+=" lo añade. innerHTML sirve para añadir texto y etiquetas HTML, si solo vas a introducir texto usa innerText. Un saludo, y metele caña a la aventura conversacional (sniff, sniff que recuerdos). Ya avisaras de los progresos :P |
| |||
| *** Jorge S. de Lis escribió/wrote (Tue, 08 Aug 2006 12:30:42 +0200): > Intenta recrear una aventura conversacional cutre, recogiendo los eventos de > las pulsaciones de teclas con javascript. El problema viene cuando hago un > document.write(); llamado por un evento de pulsación de tecla. Borra todo > lo anterior. > > ¿Extraño? No, es que en realidad el JavaScript y el DOM son un pelín más complicados que eso ;-) Tienes que visualizar el documento HTML como un árbol de nodos, donde unos nodos son etiquetas, otros son texto... Si quieres ir añadiendo texto dinámicamente, pues cada vez tienes que crear un nuevo nodo y colocarlo en el lugar de la página que le corresponde. No sé qué quieres hacer exactamente porque tu página no me funciona pero espero que esto te pueda dar alguna idea: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head><title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="Author" content="Álvaro G. Vicario"> <script type="text/javascript"><!-- function anadirLinea(){ var lista=document.getElementById('salida'); var texto=document.f.entrada.value; var linea=document.createElement('li'); linea.appendChild(document.createTextNode(texto)); lista.appendChild(linea); document.f.entrada.value=''; document.f.entrada.focus(); } //--></script> </head> <body> <form name="f" onsubmit="anadirLinea(); return false;"><input type="text" name="entrada" size="40"><input type="submit" value="Agregar"></form> <ol id="salida"> </ol> </body> </html> -- -+ http://alvaro.es - Álvaro G. Vicario - Burgos, Spain ++ Mi sitio sobre programación web: http://bits.demogracia.com +- Mi web de humor con rayos UVA: http://www.demogracia.com -- |
| |
| |
| |||
| *** Jorge S. de Lis escribió/wrote (Tue, 08 Aug 2006 12:30:42 +0200): > Intenta recrear una aventura conversacional cutre, recogiendo los eventos de > las pulsaciones de teclas con javascript. El problema viene cuando hago un > document.write(); llamado por un evento de pulsación de tecla. Borra todo > lo anterior. > > ¿Extraño? No, es que en realidad el JavaScript y el DOM son un pelín más complicados que eso ;-) Tienes que visualizar el documento HTML como un árbol de nodos, donde unos nodos son etiquetas, otros son texto... Si quieres ir añadiendo texto dinámicamente, pues cada vez tienes que crear un nuevo nodo y colocarlo en el lugar de la página que le corresponde. No sé qué quieres hacer exactamente porque tu página no me funciona pero espero que esto te pueda dar alguna idea: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head><title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="Author" content="Álvaro G. Vicario"> <script type="text/javascript"><!-- function anadirLinea(){ var lista=document.getElementById('salida'); var texto=document.f.entrada.value; var linea=document.createElement('li'); linea.appendChild(document.createTextNode(texto)); lista.appendChild(linea); document.f.entrada.value=''; document.f.entrada.focus(); } //--></script> </head> <body> <form name="f" onsubmit="anadirLinea(); return false;"><input type="text" name="entrada" size="40"><input type="submit" value="Agregar"></form> <ol id="salida"> </ol> </body> </html> -- -+ http://alvaro.es - Álvaro G. Vicario - Burgos, Spain ++ Mi sitio sobre programación web: http://bits.demogracia.com +- Mi web de humor con rayos UVA: http://www.demogracia.com -- |
| |||
| *** Jorge S. de Lis escribió/wrote (Tue, 08 Aug 2006 12:30:42 +0200): > Intenta recrear una aventura conversacional cutre, recogiendo los eventos de > las pulsaciones de teclas con javascript. El problema viene cuando hago un > document.write(); llamado por un evento de pulsación de tecla. Borra todo > lo anterior. > > ¿Extraño? No, es que en realidad el JavaScript y el DOM son un pelín más complicados que eso ;-) Tienes que visualizar el documento HTML como un árbol de nodos, donde unos nodos son etiquetas, otros son texto... Si quieres ir añadiendo texto dinámicamente, pues cada vez tienes que crear un nuevo nodo y colocarlo en el lugar de la página que le corresponde. No sé qué quieres hacer exactamente porque tu página no me funciona pero espero que esto te pueda dar alguna idea: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head><title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="Author" content="Álvaro G. Vicario"> <script type="text/javascript"><!-- function anadirLinea(){ var lista=document.getElementById('salida'); var texto=document.f.entrada.value; var linea=document.createElement('li'); linea.appendChild(document.createTextNode(texto)); lista.appendChild(linea); document.f.entrada.value=''; document.f.entrada.focus(); } //--></script> </head> <body> <form name="f" onsubmit="anadirLinea(); return false;"><input type="text" name="entrada" size="40"><input type="submit" value="Agregar"></form> <ol id="salida"> </ol> </body> </html> -- -+ http://alvaro.es - Álvaro G. Vicario - Burgos, Spain ++ Mi sitio sobre programación web: http://bits.demogracia.com +- Mi web de humor con rayos UVA: http://www.demogracia.com -- |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Abrir ficheros de un servidor con javascript en Firefox | ruben | Newsgroup microsoft.public.es.webmasters | 0 | 15-05-2008 11:40:02 |
| Abrir ficheros de un servidor con javascript en Firefox | ruben | Newsgroup microsoft.public.es.asp | 0 | 15-05-2008 11:40:01 |
| Re: Compatibilidad javascript firefox div style | ete1 | Newsgroup es.comp.lenguajes.php | 10 | 13-01-2008 11:40:25 |
| Compatibilidad javascript firefox div style | LuisDavid | Newsgroup es.comp.lenguajes.php | 36 | 13-01-2008 11:40:25 |
| Problema seguridad Firefox Javascript flaw | noSign | Newsgroup es.comp.virus | 0 | 26-04-2006 22:57:07 |