Reputation: 1037
I'm new to JavaScript.
I would like to call JavaScript / jQuery function after the page load in aspx page.
I tried using <form onload="function()">
and window.load = function(){}
, but the JavaScript is still trigger before some of the content fully loaded.
Is it possible to call during Page_PreRender
in aspx page and not in code behind, so that I can delay the JavaScript function ?
I tried setTimeout("function()",5000)
to solve the problem.
However setTimeout()
seem like is not compatible with some browser, e.g: caused looping in Google Chrome.
Upvotes: 32
Views: 77910
Reputation: 178026
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
});
Upvotes: 76
Reputation: 1458
$(document).ready(function(){
//Code goes here
});
or old style
<body onload="myFunction()">
Upvotes: 1
Reputation: 32726
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.
Upvotes: 5
Reputation: 29091
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 */ });
Upvotes: 3