Foros del Web » Programando para Internet » Javascript »

Como hacerlo sin onload en el body?

Estas en el tema de Como hacerlo sin onload en el body? en el foro de Javascript en Foros del Web. Hola a todos! A ver que os parece esto, en el siguiente codigo se cambia la clase css de un <li> segun la pagina en ...
  #1 (permalink)  
Antiguo 03/06/2007, 10:42
Avatar de ferrins  
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
Como hacerlo sin onload en el body?

Hola a todos!

A ver que os parece esto, en el siguiente codigo se cambia la clase css de un <li> segun la pagina en que nos encontremos. El problema es que hasta que no se carga la pagina del todo esto no ocurre, pues tengo la funcion en el onload del Body.

Código:
function control(){
var finestra = window.location.pathname;
var pagina = finestra.substring(finestra.lastIndexOf('/') + 1);
			switch (pagina){
		case "index.php":
			document.getElementById('inici_m').style.display = 'none';
		  break
		case "veure_notis.php":
		  document.getElementById('notis_m').className='sel';
		  break
		case "veure_reviews.php":
		  document.getElementById('reviews_m').className='sel';
		  break
		case "veure_entrevistes.php":
		  document.getElementById('entrevistes_m').className='sel';	
		  break
		case "veure_articles.php":
		  document.getElementById('articles_m').className='sel';	
		  break
		case "veure_concerts.php":
		  document.getElementById('concerts_m').className='sel';	
		  break       
		case "veure_agenda.php":
		  document.getElementById('agenda_m').className='sel';
		  break      
		}
}
Como puedo hacer para que antes de que se cargue la pagina cambiar la clase del <li> y evitar así que se vea el cambio cuando se carga la pagina del todo?

Bueno gracias por leerme!
  #2 (permalink)  
Antiguo 03/06/2007, 10:50
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Re: Como hacerlo sin onload en el body?

creo que viene siendo algo asi

document.onload=control()

suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 03/06/2007, 18:03
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 3 meses
Puntos: 9
Re: Como hacerlo sin onload en el body?

Hola, lo que puedes hacer es darle estilo a esos ids:

#notis_m,............,#agenda_m{lo mismo que .sel}

Saludos
  #4 (permalink)  
Antiguo 03/06/2007, 21:25
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 4 meses
Puntos: 13
Re: Como hacerlo sin onload en el body?

Ferrins, lo que necesitas es detectar cuando se haya cargado el DOM (Document Object Model), lo cual te permitiría ejecutar esa acción después que se haya cargado todo el código fuente, pero antes de que haya terminado de cargarse la página.

Los navegadores basados en Mozilla implementaron un evento llamado DOMContentLoaded, que Ópera implementó a partir de la versión 9. Internet Explorer no lo tiene, pero se podría emular habilitando el atributo DEFER del elemento SCRIPT. Como verás, lograr una compatibilidad entre los distintos navegadores podría resultar un tanto complicado.

Lo que yo te recomendaría en ese caso es buscar en Google una librería llamada DOMReady, que te permite detectar la carga del DOM logrando una mejor compatibilidad entre navegadores.
__________________
El conocimiento es libre: Movimiento por la Devolución
  #5 (permalink)  
Antiguo 04/06/2007, 03:03
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Como hacerlo sin onload en el body?

Poniendolo al final del documento no se supone que el arbol DOM ya se ha creado entero?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #6 (permalink)  
Antiguo 04/06/2007, 05:59
Avatar de ferrins  
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
Re: Como hacerlo sin onload en el body?

Gracias compañeros, esto del Dom es lo que mas me sonaba pero no tenia ni idea de por donde cogerlo. Voy a investigar un poco mas eso que el amigo frijolerou dice del DOM ready.
Gracias!!
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 14:57.