Hoe bel ik een JavaScript-functie op paginabelasting?

Traditioneel, om een ​​JavaScript-functie te bellen zodra de pagina is geladen, zou u een onloadtoevoegen aan het lichaam met een beetje JavaScript (meestal alleen een functie)

<body onload="foo()">

Wanneer de pagina is geladen, wil ik een JavaScript-code uitvoeren om delen van de pagina met gegevens van de server dynamisch te vullen. Ik kan de onloadAttribuut niet gebruiken, omdat ik JSP-fragmenten gebruik, die geen bodyElement hebben, kan ik een kenmerk toevoegen aan.

Is er een andere manier om een ​​JavaScript-functie te bellen? Ik gebruik liever geen jQuery als ik er niet erg bekend mee ben.


Antwoord 1, Autoriteit 100%

Als u wilt dat de onloadmethode parameters moet nemen, kunt u iets dergelijks doen:

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

Dit bindt onload aan een anonieme functie, die wanneer opgeroepen, de gewenste functie zal uitvoeren, met welke parameters u het geeft. En natuurlijk kunt u meer dan één functie uit de anonieme functie uitvoeren.


Antwoord 2, Autoriteit 19%

Een andere manier om dit te doen is door Event Luisteraars te gebruiken, hier hoe u ze gebruikt:

document.addEventListener("DOMContentLoaded", function() {
  you_function(...);
});

Uitleg:

Domcontentloaded Het betekent wanneer de DOM-objecten van het document volledig zijn geladen en gezien door Javascript, ook dit had kunnen zijn “klik”, “focus” …

-functie () Anonieme functie, wordt opgeroepen wanneer het evenement plaatsvindt.


Antwoord 3, autoriteit 12%

Je oorspronkelijke vraag was onduidelijk, ervan uitgaande dat Kevin’s bewerking/interpretatie correct is, is deze eerste optie niet van toepassing

De typische optie is het gebruik van de gebeurtenis onload:

<body onload="javascript:SomeFunction()">
....

Je kunt je javascript ook helemaal aan het einde van de body plaatsen; het wordt pas uitgevoerd als het document is voltooid.

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

En een andere optie is om te overwegen een JS-framework te gebruiken dat dit intrinsiek doet:

// jQuery
$(document).ready( function () {
  SomeFunction();
});

Antwoord 4, autoriteit 9%

function yourfunction() { /* do stuff on page load */ }
window.onload = yourfunction;

Of met jQuery als je wilt:

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

Als je meer dan één functie wilt aanroepen bij het laden van de pagina, bekijk dan dit artikel voor meer informatie:


Antwoord 5, autoriteit 2%

<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript">
        function codeAddress() {
            alert('ok');
        }
        window.onload = codeAddress;
        </script>
    </head>
    <body>
    </body>
</html>

Antwoord 6, autoriteit 2%

U moet de functie oproepen die u wilt aanroepen bij het laden (d.w.z. het laden van het document/de pagina).
De functie die u bijvoorbeeld wilt laden bij het laden van een document of pagina, wordt “uwFunctie” genoemd. Dit kan gedaan worden door de functie op load event van het document aan te roepen. Zie de onderstaande code voor meer informatie.

Probeer de onderstaande code:

<script src="js/jquery-1.11.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        yourFunction();
    });
    function yourFunction(){
      //some code
    }
</script>

Antwoord 7

hier is de truc (werkt overal):

r(function(){
alert('DOM Ready!');
});
function r(f){/in/.test(document.readyState)?setTimeout('r('+f+')',9):f()}

Antwoord 8

Voor het detecteren van geladen html (van server) die in DOM is ingevoegd, gebruik MutationObserverof detecteer het moment in uw loadContent-functie wanneer de gegevens klaar zijn voor gebruik

Other episodes