Foros del Web » Programando para Internet » Javascript »

error muy extraño

Estas en el tema de error muy extraño en el foro de Javascript en Foros del Web. Una cosita .... tengo este codigo Código: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> <script> function x(){ document.getElementById('capa').style.backgroundColor = "#ffcc00"; } x(); ...
  #1 (permalink)  
Antiguo 20/04/2004, 07:44
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años, 2 meses
Puntos: 5
error muy extraño

Una cosita .... tengo este codigo

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>Untitled</title>
	<script>
	function x(){
		document.getElementById('capa').style.backgroundColor = "#ffcc00";
	}
	x();
	</script>
</head>

<body>
<div id="capa" style="border: 1px solid #c0c0c0">
capa
</div>
</body>
</html>
Y nose por que demonios el document.getElementById() no funciona alguien sabe por que?
__________________
Usuario registrado de Linux #288725
  #2 (permalink)  
Antiguo 20/04/2004, 07:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 7 meses
Puntos: 16
Hola,

Lo que pasa es que estas llamando a la funcion antes de que exista el div. Si lo cambias a:
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>Untitled</title>
	<script>
	function x(){
		document.getElementById('capa').style.backgroundColor = "#ffcc00";
	}
	</script>
</head>

<body>
<div id="capa" style="border: 1px solid #c0c0c0">
capa
</div>
<script>
	x();
</script>
</body>
</html>
deberia funcionar. Es como cuando quieres poner el focus por defecto a un control de un formulario al cargar la pagina.

Saludos.

PD: Tambien podrias ponerla en el onload, supongo.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 20/04/2004, 07:54
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Eso

tal vez te sea práctico el ponerlo así
Código:
<script>
	function x(){
document.getElementById('capa').style.backgroundColor = "#ffcc00";
	}

window.onload = x
</script>
  #4 (permalink)  
Antiguo 20/04/2004, 10:17
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 10 meses
Puntos: 63
Hola

Efectivamente la cosa va por donde te lo mencionan, el problema es que tienes una función que hace algo, pero nunca es llamada a hacerlo.

Tienes que activar la función de alguna manera, ya sea con un onload, con un botón o con un vínculo.

Si quieres que se cambie de forma automática, es decir al entrar en el documento, lo más normal es usar esto:

<body onload:javascript:"x()";>

si la quieres activar desde un vínculo o un boón, esta es la manera más común:

<a href="javascript:x()">texto</a>

Tambien es una buena práctica, que indiques de que tipo de lenguaje es el escript de esta manera por ejemplo:

<script type="text/javascript">


Suerte

Felicidad
__________________
¡ hey, hou, hou, hey !
  #5 (permalink)  
Antiguo 21/04/2004, 00:12
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años, 2 meses
Puntos: 5
jeje gracias jeje pero bueno ... el caso es que el archivo iva a ser un .js con codigo js integramente, por lo cual estaba probando mal, pero la solucion es generar la capa tambien con javascript .

En cuando al text/javascritp jeje pos tambien hay que añadir el language como:

Código:
<script language="JavaScript" type="text/javascript"></script>
Jeje pero cuando se trabaja haciendo pruebas me ahorro el tener que escribirlo

De todas formas muchas gracias a todos
__________________
Usuario registrado de Linux #288725
  #6 (permalink)  
Antiguo 21/04/2004, 10:52
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 10 meses
Puntos: 63
Hola

Bueno, ciertamente con las pruebas uno se suele ahorrar todo el tiempo posible, tienes razón.

Aunque hablando de tiempo, hace tiempo ya que yo no me ahorro tiempo con las pruebas debido a que suelo perder tiempo por eso.

Te cuento.

Es muy normal hacer una página "simple" para las pruebas, con solo los elemtnos involucrados y poco más, pero lo cierto es que en muchas ocasiones, las pruebas no salen como esperamos y nos rompemos la cabeza en detalles que muchas veces se solucionan colocando la DTD del documento, o unas comillas, o por ejemplo, eliminando el language de la etiqueta script, pero dejando el typo.

Claro que podemos estar hablando solo de mi caso, pero por ejemplo yo trato de que mis páginas sean siempre válidas según los estandares del w3c, pues bien ,según ellos, el language no se debe poner (está deprecated) desde el html 4.01. Claro está que si uno no está preocpuado por lo standard que sea la página, pues entonces da igual.

http://www.w3.org/TR/html401/interact/scripts.html

Bueno, no les aburro más con esto...

;)

Felicidad
__________________
¡ hey, hou, hou, hey !
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 02:11.