如何延迟调用javascript函数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何延迟调用javascript函数?相关的知识,希望对你有一定的参考价值。

我是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)

因为setTimeout会将超时ID传递给函数,如果它像第一个例子中那样被调用。

但是你错误地调用了onload,所以你需要这样做:

window.onload=function() {
  // your stuff
}

或者,因为你正在使用jQuery,这个:

$(document).ready(function() {
    // your stuff
});

或者只是这样:

$(function() {
    // your stuff
});
另一答案

如果您想100%确定在ACTUALLY页面加载时,请使用:

$(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()">
另一答案

最好使用像jQuery这样的框架。 在jQuery中,您可以定义这样的函数:

$(document).ready(function() {

});

这样在DOM完全加载时将调用它。

可以找到ready()函数的完整文档here

以上是关于如何延迟调用javascript函数?的主要内容,如果未能解决你的问题,请参考以下文章

Android中切换标签片段之间的延迟

Javascript onkeyup延迟函数调用[重复]

如何创建javascript延迟功能[重复]

setTimeout 函数执行代码没有任何延迟。 Javascript [重复]

点击时间延迟

从使用 wkwebview 返回值的 javascript 调用 swift 函数