Foros del Web » Programando para Internet » Javascript »

llamar funcion desde el body al head

Estas en el tema de llamar funcion desde el body al head en el foro de Javascript en Foros del Web. Hola, soy nueva en esto, y tengo un problemilla: - tengo un archivo con extension *.js, en el cual guardo unas funciones. - tengo otro ...
  #1 (permalink)  
Antiguo 25/06/2008, 14:51
 
Fecha de Ingreso: junio-2008
Mensajes: 35
Antigüedad: 15 años, 11 meses
Puntos: 0
llamar funcion desde el body al head

Hola, soy nueva en esto, y tengo un problemilla:
- tengo un archivo con extension *.js, en el cual guardo unas funciones.
- tengo otro archivo con extensión *.html.
- desde la cabecera del *.html llamo una funcion del *.js.
- pero no quiero que se ejecute segun abra, sino cuando yo realizo una determinada función en el body, así que tendría que llamar la funcion desde el body al head, ya sea si le doi a un botón, o hago click, o arrastro un elemento, pero el problema es que no se la gramática, es decir, lo que tengo que escribir en ningun caso.. se que tengo que usar OnLoad, pero .. donde sep one eso???
bueno, gracias por la ayuda en todo caso.
  #2 (permalink)  
Antiguo 25/06/2008, 19:50
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
Respuesta: llamar funcion desde el body al head

Hola yo_soy_nessa, bienvenida a estos lares:

No hay problema en llamar a funciones javascript donde tú quieras, ya sea en el archivo js, como en el <head>, como en el <body>, pero siempre tendrás que tener cuidado con los elementos que manejas. Es decir, no puedes ejecutar una función que hace uso de un elemento <div> en el <head> (porque todavía no está creado el <div>, que estará en el <body>).

Puedes colocar código javascript en el <head> como en el <body> con este tag:
Código HTML:
<script type="text/javascript">
<!--


// -->
</script> 
Para que se ejecute un código cuando la página termine de cargar, necesitas como dices el window.onload:
Código PHP:
window.onload funcion;
window.onload = function() {
  
uno();
  
dos();

Si la llamas cuando haces click en un botón sería:
Código PHP:
<button type="button" onclick="funcion1(); funcion2();">botón</button
Existen multitud de eventos como onclick: onmouseover, onsubmit, onmousemove, onkeypres...


Para lo demás, Google es tu amigo.


Saludos
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 26/06/2008, 02:46
 
Fecha de Ingreso: junio-2008
Mensajes: 35
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: llamar funcion desde el body al head

ya lo busqué en google, pero no lo entendí, y de todo modos, a lo que me refiero que quiero escribir y no se, es lo de <button type=.... >así que muchas gracias por solucionar las dudas :).
Si tengo más.. por aquí andaré :).
Saludos
  #4 (permalink)  
Antiguo 26/06/2008, 03:06
 
Fecha de Ingreso: junio-2008
Mensajes: 35
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: llamar funcion desde el body al head

el caso es que ahora que se llamar la función, cuando lo hago, la página queda en blanco, ...
es que en esto soy novata.. y se que la función está bien, porque la había probado antes, e iba.. es ahora al ponerla en un fichero externo que no va tan bien... bueno, que deja la pag en blanco.
gracias por las respuestas :)
  #5 (permalink)  
Antiguo 26/06/2008, 08: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
Respuesta: llamar funcion desde el body al head

Hola de nuevo:

Si deja la página en blanco quizás es porque tienes puesto:
Código PHP:
<a href="#" onclick="f()">lanza</a
Se soluciona terminando la instrucción onclick con un return false para cancelar la acción del vínculo:
Código PHP:
<a href="#" onclick="f(); return false;">lanza</a
De todas maneras acostumbrate a colocar una línea de código o algo, no somos adivinos, no sabemos decir por qué no funciona algo que no sabemos cómo es.


Saludos.
__________________
- 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 26/06/2008, 08:28
 
Fecha de Ingreso: junio-2008
Mensajes: 35
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: llamar funcion desde el body al head

Cierto, perdona,
y otra cosa, eso en código PHP, pero no lo puedo usar para el puzzle, que es el "programa" que estoy haciendo.
La línea de código del head:

<script type="text/javascript" src="funciones_1.js"></script>

La línea del código en el body, que llama a la función que está en ese archivo.

<table>
<input type='button' name='Puzzle' value='puzzle' onClick='cargarPiezas();' />

</table>

Y la función a la que llama, es la siguiente:

function cargarPiezas(){

var i, y, j;

for ( i=1; i<=5; i++){

document.write(" <tr> ")

for(y=1; y<=6; y++){
document.write(" <td width='100' height='100'>");

(" <img src=/piezas/"+j+".jpg> ");
j++;

document.write("</td>");
}
document.write(" </tr> ");
}
}


Se supone que crea una tabla, y pone las imágenes, cuando le doi al botón, pero cuando clickeo, simplemente pone la página toda en blanco, y en el mejor de los casos, deja huecos para las imágenes que irían en ella, que son 30.

Y gracias por la ayuda.
  #7 (permalink)  
Antiguo 26/06/2008, 09:04
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
Respuesta: llamar funcion desde el body al head

El problema es que no se puede utilizar document.write() una vez el documento esté cargado.

Cuando ya lo tengas cargado tendrás que agregar contenido mediante innerHTML o mediante DOM, document.write() machaca todo lo que tenías anteriormente (por eso se ve en blanco).

Sobre como añadir elementos dinámicamente o DOM hay mucho escrito. Puede que te valga con innerHTML si es para algo sencillito:
Código PHP:
document.getElementById("miElemento").innerHTML "Este es mi texto.<br/>Aqui colocas lo que quieras en código HTML."


Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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:35.