How do I call a JavaScript function on page load?

How do I call a JavaScript function on page load?

Traditionally, to call a JavaScript function once the page has loaded, you’d add an onload attribute to the body containing a bit of JavaScript (usually only calling a function)

When the page has loaded, I want to run some JavaScript code to dynamically populate portions of the page with data from the server. I can’t use the onload attribute since I’m using JSP fragments, which have no body element I can add an attribute to.
Is there any other way to call a JavaScript function on load? I’d rather not use jQuery as I’m not very familiar with it.

Solutions/Answers:

Solution 1:

If you want the onload method to take parameters, you can do something similar to this:

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

This binds onload to an anonymous function, that when invoked, will run your desired function, with whatever parameters you give it. And, of course, you can run more than one function from inside the anonymous function.

Related:  How to check if function exists in JavaScript?

Solution 2:

Another way to do this is by using event listeners, here how you use them:

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

Explanation:

DOMContentLoaded It means when the DOM Objects of the document are fully loaded and seen by JavaScript, also this could have been “click”, “focus”…

function() Anonymous function, will be invoked when the event occurs.

Solution 3:

function yourfunction() { /* do stuff on page load */ }

window.onload = yourfunction;

Or with jQuery if you want:

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

If you want to call more than one function on page load, take a look at this article for more information:

Solution 4:

Your original question was unclear, assuming Kevin’s edit/interpretation is correct then this first option doesn’t apply

The typical options is using the onload event:

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

You can also place your javascript at the very end of the body; it won’t start executing until the doc is complete.

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

And, another options, is to consider using a JS framework which intrinsically does this:

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

Solution 5:

You have to call the function you want to be called on load (i.e., load of the document/page).
For example, the function you want to load when document or page load is called “yourFunction”. This can be done by calling the function on load event of the document. Please see the code below for more detail.

Related:  round to nearest .25 javascript

Try the code below:

<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>

Solution 6:

here’s the trick (works everywhere):

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