Foros del Web » Programando para Internet » Javascript »

Evento al cargar el HTML del body

Estas en el tema de Evento al cargar el HTML del body en el foro de Javascript en Foros del Web. Buenas compañeros, Al final de mi body tengo una funcion _activar_eventos(); que me permite activar el javascript antes de que cargue todo lo que falta, ...
  #1 (permalink)  
Antiguo 19/07/2013, 14:29
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Evento al cargar el HTML del body

Buenas compañeros,

Al final de mi body tengo una funcion _activar_eventos(); que me permite activar el javascript antes de que cargue todo lo que falta, como imagenes y demas.

Ya se que lo hacen muchas webs. Mi duda es... ¿Existe alguna forma de hacerlo mas elegante?. Es que la verdad... tener esto:

Código Javascript:
Ver original
  1. <script>_activar_eventos();</script>

Tenerlo encima del cierre del body me hacen sangrar los ojos.

¿Sabeis alguna alternativa?... es necesario que se haya cargado todo el HTML, por ello los eventos onload y demas... no me valen, jeje.

Siempre evitando poner CSS o JS dentro del HTML, y me parece que de esta no me libro.

  #2 (permalink)  
Antiguo 19/07/2013, 15:28
Avatar de hackjose  
Fecha de Ingreso: abril-2010
Ubicación: Edo Mexico
Mensajes: 1.178
Antigüedad: 14 años
Puntos: 131
Respuesta: Evento al cargar el HTML del body

Podrias usar el atributo defer en el elemento script, solo que no muchos navegadores soportan este atributo.

Hay otro evento llamado DOMContentLoaded, este se dispara tan pronto se termina de analizar el documento.

En cambio el evento load se dispara cuando todos los elementos(iframes,imagenes,hojas de estilo,incluso scripts) se an terminado de cargar

Y todavia la cosa se pone mas lento cuando tienes algo como esto

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <script src="script_pesado.js"></script>
  3. </head>
  4.  
  5. </body>
  6. </html>

El documento se empieza a analizar y cuando llega a script hace una pausa porque debe descargarlo y despues ejecutar el codigo y una vez que termina de ejecutar el codigo sigue analizando el documento

Conclucion creo que evento domcontentloaded

saludos
  #3 (permalink)  
Antiguo 19/07/2013, 15:38
 
Fecha de Ingreso: julio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Evento al cargar el HTML del body

puedes utilizar esta estructura dentro de tu script


Código Javascript:
Ver original
  1. (function (){
  2.     tufuncion();
  3.     function tufuncion(){
  4.         console.log("hola");
  5.     }
  6. })();
  #4 (permalink)  
Antiguo 19/07/2013, 16:05
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Evento al cargar el HTML del body

Buenas hackjose y wolfoxley,

Gracias por la información hackjose. He estado consultando información del evento DOMContentLoaded y parece tener problemas de compatibilidades con algun que otro navegador. He visto que hay alguna funcion cross browser, pero uf... no tengo mucha confianza en solucionar el problema de esta forma. Osea, sobre el papel veo perfecto el evento... sobre la realidad... maldigo al genio creativo de algunos programadores de navegadores... ****llos!.

wolfoxley... he probado ese codigo, y llama a la funcion que quiero, pero sin tener elementos en el DOM, ya que aun no se han cargado.

Jo!... que pena. Me parece que no me queda otra que incluir esa odioso script en el pie de la web. Parece mentira!. Lo hacen hasta las grandisimas webs.

:P


Gracias!
  #5 (permalink)  
Antiguo 19/07/2013, 16:14
 
Fecha de Ingreso: julio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Evento al cargar el HTML del body

intenta una vez mas con este código

eso de console.log();
no funciona el IE



Código Javascript:
Ver original
  1. (function (){
  2.  
  3.     window.tufuncion();
  4.    
  5. })();
  6.  
  7. function tufuncion() {
  8.     alert("hola");
  9. }
  #6 (permalink)  
Antiguo 19/07/2013, 19:25
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Evento al cargar el HTML del body

buenas,
@wolfoxley, el código que estás recomendando no tiene relación alguna con lo que el autor solicita. el código que estás proponiendo es simplemente una forma de invocar una función anonima. comúnmente lo utilizan con el único propósito de crear un closure o ejecutar una función una sola vez. ni por lejos tiene el mismo efecto que el evento DOMContentLoaded.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 19/07/2013, 19:30
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Evento al cargar el HTML del body

Gracias wolfoxley... pero tampoco me furrula... jeje... gracias de todos modos a todos!!!!!

Etiquetas: body, evento, funcion, 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 08:28.