Javascript en la parte inferior, ¿llamada de función en el cuerpo?

Solo una pregunta rápida, estoy siguiendo la práctica de mantener todos los archivos de Javascript en la parte inferior del documento antes del cuerpo de cierre. Sin embargo, quiero llamar a una función en el cuerpo, que aparecería antes de la inclusión de JS y, por lo tanto, falla.

¿Hay alguna forma de hacer que esta función funcione sin mover los archivos a la cabeza?

¡Aclamaciones!

preguntado el 01 de junio de 12 a las 12:06

¿Por qué su llamada de función en el cuerpo debe estar allí y no al final del cuerpo con el resto de su JS? -

¿La función es llamada directamente o por algún evento? -

Normalmente no lo haría, pero tengo que incluirlo en un CMS. Sí, es una llamada de función directa, sin eventos.

5 Respuestas

sí, puedes envolver tu función con

window.onload = function() {
   //call to your function here
};

pero probablemente esta solución sea mejor si puede modificar la parte inferior de su página:
Deja de pagar tu impuesto jQuery

Respondido el 01 de junio de 12 a las 12:06

También puede llamar a su función desde un documento html:

<body onload="yourFunction()">

y definirlo en .js

Respondido el 23 de junio de 14 a las 13:06

$(document).ready(function() {
   // put all your jQuery goodness in here.
 });

revisa esta url: ready

Respondido el 01 de junio de 12 a las 12:06

Se hace referencia a JQuery en la parte inferior de la página, por lo que usar el signo $ dará un error: eduardo pola

si, usa $(document).ready() función que se llamará después de que se cargue el dom para que se conozcan todas sus funciones js.

$(function(){
  //do stuff here
}

pero su archivo jQuery debe ser anterior a esa llamada.

si no quiere usar jquery, depende de cómo declare la función. hay una diferencia entre si usa var o no. echa un vistazo a esta muestra:

function FunctionDefinitionOrder() {
    assert(isRed(), "Named function definition doesn't matter");        
    assert(isGreen === undefined, "However, it's not the case with anonymous functions");

    function isRed() { return true; }
    var isGreen = function () { return true; };

    assert(isGreen(), "Anonymous functions are known only after the definition");
}

Respondido el 01 de junio de 12 a las 12:06

Como está cargando todo su JS al final del cuerpo, dudo que pueda usar jQuery. Lanzz

Si no está llamando a la función en el evento de carga del cuerpo, debería poder llamar a las funciones desde cualquier lugar de la página, incluso cuando las funciones están en la parte inferior de la página. El navegador carga todas las funciones encontradas en la memoria al cargar la página, por lo que todas las funciones están disponibles cuando la página está lista. Si no se encuentra la función, puede

  • escribió mal el nombre de la función al llamarla (poco probable)

or

  • hay un error en el JS entre las etiquetas del script que contienen la función a llamar

En el segundo caso, verifique si hay algún error en la consola JS. También puede intentar reemplazar la llamada de función a otra función encerrada en etiquetas de script separadas, simplemente emitiendo un mensaje de alerta. Si esta llamada funciona pero la llamada a su función "real" no, hay un error en algún lugar del código JS que impide que se cargue la función.

Respondido el 01 de junio de 12 a las 12:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.