Tradycyjnie, aby wywołać funkcję JavaScript po załadowaniu strony, dodajemy atrybut onload
do ciała strony zawierający trochę JavaScript (zazwyczaj tylko wywołanie funkcji)
<body onload="foo()">
Kiedy strona zostanie załadowana, chcę uruchomić trochę kodu JavaScript, aby dynamicznie wypełnić fragmenty strony danymi z serwera. Nie mogę użyć atrybutu onload
, ponieważ używam fragmentów JSP, które nie mają elementu body
, do którego mógłbym dodać atrybut.
Czy jest jakiś inny sposób na wywołanie funkcji JavaScript przy ładowaniu? Wolałbym nie używać jQuery, ponieważ nie jestem z nim zbyt dobrze zaznajomiony.
Jeśli chcesz, aby metoda onload pobierała parametry, możesz zrobić coś podobnego do tego:
window.onload = function() {
yourFunction(param1, param2);
};
Wiąże to onload z anonimową funkcją, która po wywołaniu uruchomi twoją pożądaną funkcję, z dowolnymi parametrami, które jej podasz. I oczywiście, możesz uruchomić więcej niż jedną funkcję z wnętrza anonimowej funkcji.
Twoje oryginalne pytanie było niejasne, zakładając, że Kevin's edit/interpretacja jest poprawna, to pierwsza opcja nie ma zastosowania.
Typową opcją jest użycie zdarzenia onload
:
<body onload="javascript:SomeFunction()">
....
Możesz również umieścić swój javascript na samym końcu ciała; nie zacznie się on wykonywać, dopóki dokument nie zostanie ukończony.
<body>
...
<script type="text/javascript">
SomeFunction();
</script>
</body>
I, inne opcje, to rozważenie użycia frameworka JS, który wewnętrznie to robi:
// jQuery
$(document).ready( function () {
SomeFunction();
});
function yourfunction() { /* do stuff on page load */ }
window.onload = yourfunction;
Lub z jQuery, jeśli chcesz:
$(function(){
yourfunction();
});
Jeśli chcesz wywołać więcej niż jedną funkcję podczas ładowania strony, spójrz na ten artykuł, aby uzyskać więcej informacji: