Come faccio a chiamare una funzione JavaScript al caricamento della pagina?

Tradizionalmente, per chiamare una funzione JavaScript una volta che la pagina è stata caricata, si aggiunge un attributo onload al corpo che contiene un po' di JavaScript (di solito chiama solo una funzione)

<body onload="foo()">

Quando la pagina è caricata, voglio eseguire del codice JavaScript per popolare dinamicamente porzioni della pagina con dati dal server. Non posso usare l'attributo onload perché sto usando i frammenti JSP, che non hanno un elemento body a cui posso aggiungere un attributo.

C'è un altro modo per chiamare una funzione JavaScript su load? Preferirei non usare jQuery perché non ho molta familiarità con esso.

Soluzione

Se volete che il metodo onload prenda dei parametri, potete fare qualcosa di simile a questo:

window.onload = function() {
  yourFunction(param1, param2);
};

Questo vincola onload ad una funzione anonima, che quando invocata, eseguirà la funzione desiderata, con qualsiasi parametro che gli darete. E, naturalmente, potete eseguire più di una funzione da dentro la funzione anonima.

Commentari (4)

**La tua domanda originale non era chiara, assumendo che la modifica/interpretazione di Kevin sia corretta, questa prima opzione non è applicabile.

L'opzione tipica è usare l'evento onload:


....

Puoi anche mettere il tuo javascript alla fine del corpo; non inizierà l'esecuzione finché il documento non sarà completo.


  ...
  <script type="text/javascript">
    SomeFunction();
  </script>

E, un'altra opzione, è quella di considerare l'utilizzo di un framework JS che intrinsecamente fa questo:

// jQuery
$(document).ready( function () {
  SomeFunction();
});
Commentari (3)
function yourfunction() { /* do stuff on page load */ }

window.onload = yourfunction;

O con jQuery se vuoi:

$(function(){
   yourfunction();
});

Se vuoi chiamare più di una funzione al caricamento della pagina, dai un'occhiata a questo articolo per maggiori informazioni:

Commentari (5)