Foros del Web » Programando para Internet » Javascript »

Crear elemento al final del documento </body>

Estas en el tema de Crear elemento al final del documento </body> en el foro de Javascript en Foros del Web. muy buenas tardes foreros, llevo rato intentando pero no he conseguido, poder crear un elemento justo antes de la etiqueta </body> index.html @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 10/03/2012, 09:22
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 11 años, 6 meses
Puntos: 8
Pregunta Crear elemento al final del documento </body>

muy buenas tardes foreros, llevo rato intentando pero no he conseguido, poder crear un elemento justo antes de la etiqueta </body>

index.html
Código HTML:
Ver original
  1. <script src="documento.js"></script>
  2. <div>Algún texto</div>
  3. <script type="text/javascript">algo de código</script>
  4. </body>
la idea es crear un elemento script antes de la etiqueta </body> o en su defecto agregar código en la etiqueta script que ya está al final. todo esto a través del archivo documento.js

actualmente tengo esto:
documento.js
Código Javascript:
Ver original
  1. var a= document.createElement("script");
  2. var b= document.createTextNode("hola");
  3. a.appendChild(b);
  4. document.body.appendChild(a);
pero me crea el elemento script debajo de document.js
Código HTML:
Ver original
  1. <script src="documento.js"></script>
  2.  
  3. <script>hola</script>
  4.  
  5. <div>Algún texto</div>
  6. <script type="text/javascript">algo de código</script>
  7. </body>
Alguien sabe como podría conseguir este objetivo_?
__________________
AppLab - Laboratorio de Ideas
  #2 (permalink)  
Antiguo 10/03/2012, 09:34
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 10 años, 7 meses
Puntos: 1485
Respuesta: Crear elemento al final del documento </body>

¡buenas!
creo que tienes que explicarte mejor porque no estoy del todo seguro lo que quieres lograr. entiendo que quieres poner un elemento antes de </body> y que dicho elemento es un script. pero lo que no comprendo es qué intentas hacer o por qué quieres introducir un script a través de otro. es normal que appendChild agregue el elemento al final. pues así es como funciona: agrega como último nodo hijo de otro elemento.

edit:
creo que ya lo entendi. sucede que tu script agrega el elemento al documento mientras el navegador está cargando el documento. eso lo que implica es que estás trabajando con el DOM en una fase muy temprana donde el navegador aún no ha generado todos los elementos. (recuerda que el navegador lee línea por línea de arriba abajo.) por tanto, cuando el navegador lee tu primer script, esta trabajando con lo que tenga del DOM y es por eso que no lo agrega justo al final de BODY. tendrías que cambiar un poco la metodología: en lugar de agregar el elemento mientras lee el documento, iniciar el proceso cuando el documento haya finalizado su carga para garantizar que se agregue al final de BODY. para ello utilizas el evento onload o DOMContentLoaded.

la otra forma no te va funcionar. es decir, agregar el código javascript a un elemento SCRIPT existente. al menos en las pruebas que he hecho, de alguna forma el elemento pierde la atención de parte del navegador. es decir, el elemento queda paralizado por más nodos TextNode que le agregues.

Última edición por zerokilled; 10/03/2012 a las 09:49
  #3 (permalink)  
Antiguo 10/03/2012, 12:57
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 11 años, 6 meses
Puntos: 8
Respuesta: Crear elemento al final del documento </body>

muchas gracias. Funcionó!
__________________
AppLab - Laboratorio de Ideas

Etiquetas: elemento, final, html, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:45.