[英]How to delay calling of javascript function?
我是 JavaScript 的新手。
我想在 aspx 页面加载页面后调用 JavaScript/jQuery 函数。
我尝试使用<form onload="function()">
和window.load = function(){}
,但是在某些内容完全加载之前 JavaScript 仍然被触发。
是否可以在 aspx 页面的Page_PreRender
期间调用而不是在代码后面调用,以便我可以延迟 JavaScript 函数?
我试过setTimeout("function()",5000)
来解决这个问题。
但是setTimeout()
似乎与某些浏览器不兼容,例如:在 Google Chrome 中导致循环。
自 1996 年以来, setTimeout
与所有浏览器兼容。您应该避免评估“functionName()”,而是执行以下操作:
setTimeout(functionName,5000)
更新:如果您最初希望将变量传递给函数并且在超时时没有变量,则需要改为执行以下操作:
setTimeout(function() { functionName() },5000)
但是,您错误地调用了onload
,因此您需要执行以下任一操作:
window.addEventListener("load",function() {
// your stuff
}
或更简单的
window.onload=function() {
// your stuff
}
或者,由于您使用的是jQuery ,因此:
$(document).ready(function() {
// your stuff
});
或者只是这样:
$(function() {
// your stuff
});
如果您想 100% 确定页面实际加载的时间,请使用:
$(window).load(function(){
//After EVERYTHING loads, including images.
})
另一个解决方案onload
有效,但它会在 DOM 准备就绪后加载,但不会在窗口实际完成加载时加载。
如果您要使用 jQuery,那么最好使用以下方法之一将事件附加到文档就绪事件:
$(document).ready(callback);
要么
$(document).ready(function () { /* do stuff */ });
要么
$(callback);
要么
$(function () { /* do stuff */ });
$(document).ready(function(){
//Code goes here
});
或旧式
<body onload="myFunction()">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.