Παραδοσιακά, για να καλέσετε μια συνάρτηση JavaScript μόλις φορτωθεί η σελίδα, προσθέτετε ένα χαρακτηριστικό onload
στο σώμα που περιέχει ένα κομμάτι JavaScript (συνήθως μόνο την κλήση μιας συνάρτησης)
<body onload="foo()">
Όταν η σελίδα έχει φορτωθεί, θέλω να εκτελέσω κάποιο κώδικα JavaScript για να γεμίσω δυναμικά τμήματα της σελίδας με δεδομένα από το διακομιστή. Δεν μπορώ να χρησιμοποιήσω το χαρακτηριστικό onload
, καθώς χρησιμοποιώ θραύσματα JSP, τα οποία δεν έχουν το στοιχείο body
στο οποίο μπορώ να προσθέσω ένα χαρακτηριστικό.
Υπάρχει κάποιος άλλος τρόπος να καλέσω μια συνάρτηση JavaScript κατά τη φόρτωση; Θα προτιμούσα να μην χρησιμοποιήσω το jQuery, καθώς δεν είμαι πολύ εξοικειωμένος με αυτό.
Αν θέλετε η μέθοδος onload να δέχεται παραμέτρους, μπορείτε να κάνετε κάτι παρόμοιο με αυτό:
window.onload = function() {
yourFunction(param1, param2);
};
Αυτό συνδέει την onload με μια ανώνυμη συνάρτηση, η οποία όταν κληθεί, θα εκτελέσει την επιθυμητή συνάρτηση, με όποιες παραμέτρους της δώσετε. Και, φυσικά, μπορείτε να εκτελέσετε περισσότερες από μία συναρτήσεις μέσα από την ανώνυμη συνάρτηση.
Η αρχική σας ερώτηση ήταν ασαφής, υποθέτοντας ότι η επεξεργασία/ερμηνεία του Kevin είναι σωστή, τότε αυτή η πρώτη επιλογή δεν ισχύει
Οι τυπικές επιλογές είναι η χρήση του συμβάντος onload
:
<body onload="javascript:SomeFunction()">
....
Μπορείτε επίσης να τοποθετήσετε το javascript σας στο τέλος του σώματος- δεν θα αρχίσει να εκτελείται μέχρι να ολοκληρωθεί το έγγραφο.
<body>
...
<script type="text/javascript">
SomeFunction();
</script>
</body>
Και, μια άλλη επιλογή, είναι να εξετάσετε το ενδεχόμενο να χρησιμοποιήσετε ένα πλαίσιο JS το οποίο εγγενώς το κάνει αυτό:
// jQuery
$(document).ready( function () {
SomeFunction();
});
function yourfunction() { /* do stuff on page load */ }
window.onload = yourfunction;
Ή με jQuery αν θέλετε:
$(function(){
yourfunction();
});
Αν θέλετε να καλέσετε περισσότερες από μία συναρτήσεις κατά τη φόρτωση της σελίδας, ρίξτε μια ματιά σε αυτό το άρθρο για περισσότερες πληροφορίες: