Foros del Web » Programando para Internet » Javascript »

Problema tonto getElementById

Estas en el tema de Problema tonto getElementById en el foro de Javascript en Foros del Web. Hola foreros! Estoy incursionando en el mundo del js, y mientras leo un tutorial voy haciendo los ejercicios. Hasta ahora no lo utilizaba ya que ...
  #1 (permalink)  
Antiguo 22/04/2008, 09:57
Avatar de Payin  
Fecha de Ingreso: mayo-2007
Mensajes: 92
Antigüedad: 17 años
Puntos: 0
Problema tonto getElementById

Hola foreros! Estoy incursionando en el mundo del js, y mientras leo un tutorial voy haciendo los ejercicios. Hasta ahora no lo utilizaba ya que derivaba el métoo getElementById con el getElementByTagName, pero ahora, ya es imposible
El problema se me presenta en que no me "levanta" el DOM con el método antes mencionado. Los ejemplos que pongo son sacados de tutoriales, o sea que están bien. Intuyo que el problema debe ser mi entorno de desarrollo.

Utilizo el Eclipse SDK version 3.3
Mi JDK es la 1.6
Mi servidor local es el tomcat 5.5

me bajé el plug in de js de Adobe para Eclipse, pero es lo mismo. tengo que descargar un nuevo servidor? o actualizar las librerías de mi servidor?

A alguien le ha pasado? es realmente muy feo, ya que ni siquiera este tonto ejemplo me funciona

Código HTML:
// Función externa
function muestraMensaje() {
alert('Gracias por pinchar');
}
// Asignar la función externa al elemento
document.getElementById("pinchable").onclick = muestraMensaje;
// Elemento XHTML
<input id="pinchable" type="button" value="Pinchame y verás" /> 
  #2 (permalink)  
Antiguo 22/04/2008, 10:26
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Re: Problema tonto getElementById

Creo que estas un poco fuera de foco ... .
Primero ... no necesitas Tomcat, si no mal entiendo este se ejecuta en el servidor; cosa que tu no necesitas para hacer pruebas de javascript. Wiki de Apache TomCat.
El código javascript se ejecuta en tu browser, ya sea IE, FF, Safari, etc ...

Respecto al plugIn de Eclipse, está bien que lo uses; pero no es necesario. Con un simple editor puedes hacer tus scripts en javascript sin problemas. Te recomiendo notepad++ para windows (que no lo recomienfo ).

Aclarado esto ... entonces nos enfocamos en tu problema.
Es muy probable que tu problema esté en que quieres escanear el elemento html con id="pinchable cuando el mismo aún no se encuentra descargado en tu browser.

Esto es muy común cuando utilizas funciones de DOM. Entonces debes asegurarte que antes de querer acceder a cualquier parte del código mediante DOM este se encuentre cargado. Puedes usar el evento onLoad de windows, quedaría algo así:
Código PHP:
window.onload = function () {
    
// Función externa
    
function muestraMensaje() {
        
alert('Gracias por pinchar');
   }

    
// Asignar la función externa al elemento
    
document.getElementById("pinchable").onclick muestraMensaje;

Saludos.
__________________
| Cabeza De Raton |
  #3 (permalink)  
Antiguo 22/04/2008, 10:58
Avatar de Payin  
Fecha de Ingreso: mayo-2007
Mensajes: 92
Antigüedad: 17 años
Puntos: 0
Re: Problema tonto getElementById

muchas gracias. Ahi me funcionó!

Realmente pensaba que no era necesario utilizar el onload para esta sitacion, yaque primero debería estar cargada la pagina antes de hacer la funcion.

Una duda menos. Lo pueden cerrar nomas!
Nuevamente, gracias
  #4 (permalink)  
Antiguo 22/04/2008, 11:10
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Re: Problema tonto getElementById

De nada. Tienes que tener en cuenta que en los últimos tiempos, de alguna manera, se ha comenzado a utilizar mucho mas las funciones DOM. Conceptos como código no intrusivo tienen mucho que ver ... por eso se han definido nuevos métodos que no usan onload y son más eficientes.
Todos los frameworks nuevos de javascript lo tienen incorporado; por ejemplo, en mootools se llama onDomReady. Es más eficiente porque no espera a la carga total de la página web como si lo hace onload; se manera diferente, este solo espera la carga del código HTML, descartando imágenes, películas, etc.
Saludos.
__________________
| Cabeza De Raton |
  #5 (permalink)  
Antiguo 22/04/2008, 15:10
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Problema tonto getElementById

Cita:
Iniciado por Calisco Ver Mensaje
De nada. Tienes que tener en cuenta que en los últimos tiempos, de alguna manera, se ha comenzado a utilizar mucho mas las funciones DOM. Conceptos como código no intrusivo tienen mucho que ver ... por eso se han definido nuevos métodos que no usan onload y son más eficientes.
Todos los frameworks nuevos de javascript lo tienen incorporado; por ejemplo, en mootools se llama onDomReady. Es más eficiente porque no espera a la carga total de la página web como si lo hace onload; se manera diferente, este solo espera la carga del código HTML, descartando imágenes, películas, etc.
Saludos.
Hola:

Calisco: onload del body se supone que se activa con el fin del tag body (</body>)... y solo el documento... para las imágenes están los load's de esos tags (img)... y el onload del window, supongo que debe ser al encontrar el tag de cierre del documento (</html>)... pues bueno, aunque seguro que estás cosas siempre dependerá de los navegadores, los onloads pasan de de los objetos, y solo esperan hasta que se carguen los documentos... no me extrañaría que ese dato se lo hayan inventado los que hacen la documentación de las librerías...

Por cierto, por ejemplo he visto que opera no carga nada que se encuentre en una capa oculta (display: none)... es curioso como se empiezan a cargar las imágenes cuando pinchas en la opción que muestra la capa (creo que sigue siendo así...)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 23/04/2008, 07:00
Avatar de Calisco  
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 1 mes
Puntos: 4
Re: Problema tonto getElementById

Ok, pero a los fines prácticos ... como aseguro el uso de funciones DOM en un documento html ?.
Mira este ejemplo: http://demos.mootools.net/DomReadyVS.Load; como decis vos, el evento se dispara sobre en el objeto window.
A que están haciendo referencia cuando dicen DOmReady vs Load.
Saludos Caricatos, gracias por los comentarios.
__________________
| Cabeza De Raton |
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 23:36.