How to delay calling of javascript function?
If you want to be 100% sure that it's when the page ACTUALLY loads, use:
$(window).load(function(){
//After EVERYTHING loads, including images.
})
The other's solution, onload
works, but it loads once the DOM is ready, but not when the window is actually finished loading.
setTimeout
is compatible with all browsers since 1996. You should avoid the evaluation of "functionName()" and instead do:
setTimeout(functionName,5000)
UPDATE: If you initially expect a variable passed to the function and none when in the timeout, you need to do this instead:
setTimeout(function() { functionName() },5000)
However you are calling the onload
incorrectly, so you need to do either this:
window.addEventListener("load",function() {
// your stuff
}
or the simpler
window.onload=function() {
// your stuff
}
or, since you are using jQuery, this:
$(document).ready(function() {
// your stuff
});
or just this:
$(function() {
// your stuff
});
If you're going to be using jQuery then it's preferable to attach an event to the document ready event using one of the following:
$(document).ready(callback);
or
$(document).ready(function () { /* do stuff */ });
or
$(callback);
or
$(function () { /* do stuff */ });
$(document).ready(function(){
//Code goes here
});
or old style
<body onload="myFunction()">