延迟javascript函数几秒钟

时间:2015-03-15 04:39:40

标签: javascript

单击此按钮,我的脚本将运行函数manage($n)

$onclick = "manage('$n');";

但是我想在页面被点击后立即刷新页面。

$onclick="window.location.reload(true);manage('$n')";

由于刷新速度很快,我希望在运行前将管理功能延迟3秒,但延迟不起作用。

$onclick="window.location.reload(true);setTimeout(manage('$n'),300);";

<input class='button' onclick=\"$onclick\" ></td>

2 个答案:

答案 0 :(得分:0)

你需要这样做:

$onclick="window.location.reload(true);setTimeout(function(){manage('$n')},3000);";

修改

window.location.reload重新加载页面并重新初始化javascript。所以你不能等待它完成。这也不能有任何回调。因此,您需要在manage上运行document.ready()功能。您可以在重新加载页面之前设置cookie。重新加载后,检查cookie是否设置,运行manage功能:

 $onclick="document.cookie='reload=true';window.location.reload(true);"

现在,将此代码添加到页面的开头:

$(document).ready(function(){
   if (document.cookie.indexOf("reload") >= 0)
   {
        manage('$n');
        //set expires parameter to a passed date for deleting cookie
        document.cookie = "reload=; expires=Thu, 01 Jan 1970 00:00:00 UTC"; 
   }
});

我认为cookie对您来说是一个很好的解决方案。有关javascript Cookie的更多信息,请refer to this link.

答案 1 :(得分:0)

你可以试试这个

if(!window.location.callAfterRelod)
     {
        var a={};
        a.manage=manage;
        window.location.callAfterReload=JSON.stringify(a);
        window.location.reload(true);
     }
else
    JSON.parse(window.location.callAfterReload).manage($n);