我是JavaScript的新手。
我想在aspx页面加载页面后调用JavaScript / jQuery函数。
我尝试使用<form onload="function()">
和window.load = function(){}
,但在某些内容完全加载之前,JavaScript仍会触发。
是否可以在Page_PreRender
期间在aspx页面中调用而不是在代码后面调用,以便我可以延迟JavaScript函数?
我尝试setTimeout("function()",5000)
来解决问题。
然而,setTimeout()
似乎与某些浏览器不兼容,例如:在Google Chrome中导致循环。
答案 0 :(得分:70)
setTimeout
与所有浏览器兼容。您应该避免评估“functionName()”而是:
setTimeout(functionName,5000)
UPDATE:如果您最初期望传递给函数的变量而在超时时没有传递,则需要执行此操作:
setTimeout(function() { functionName() },5000)
因为setTimeout会将超时ID传递给函数,如果像第一个例子中那样调用它。
但是你错误地调用onload
,所以你需要这样做:
window.onload=function() {
// your stuff
}
或者,因为您使用的是jQuery,所以:
$(document).ready(function() {
// your stuff
});
或只是这个:
$(function() {
// your stuff
});
答案 1 :(得分:5)
如果你想100%确定当页面实际加载时,请使用:
$(window).load(function(){
//After EVERYTHING loads, including images.
})
另一个解决方案onload
可以正常工作,但是一旦DOM准备好就会加载,但是当窗口实际完成加载时却不会加载。
答案 2 :(得分:3)
如果你打算使用jQuery,那么最好使用以下方法之一将事件附加到文档就绪事件:
$(document).ready(callback);
或
$(document).ready(function () { /* do stuff */ });
或
$(callback);
或
$(function () { /* do stuff */ });
答案 3 :(得分:1)
$(document).ready(function(){
//Code goes here
});
或旧式
<body onload="myFunction()">
答案 4 :(得分:0)