3

我打电话

window.location.reload(false) 

在 javascript 方法中更新页面。在此调用之后,我还有其他 javascript 调用。在调用其他 javascript 调用之前,有没有办法知道 window.location.reload(false) 何时完成运行?

4

3 回答 3

3

您只需提供一个函数来 onload :重新加载与加载没有什么不同。

window.onload = function() { // ...
于 2012-05-11T14:48:24.290 回答
2

您的代码行window.location.reload(false)导致浏览器重新加载当前页面 - 在此语句之后不会执行任何脚本....

您可以在第一次加载时设置 cookie - 然后在后续加载时检查 cookie 的存在并执行操作......伪代码:

onload = check cookie
if cookie is present
   run function
else
   set cookie
   reload

您可以检查 cookie 上的时间并选择在经过一段时间(例如 1 小时)后执行该功能....

于 2012-05-11T14:47:33.820 回答
1

我使用主题标签来设置变量,告诉我页面是否重新加载。你可以这样做:

// Get the hash of the page
var hashstring = window.location.hash.substring(1);
var found = false;

// Do a hash exist?
if (hashstring.length > 0) 
{
    // Split the hash by '&'-sign (in case you have more variables in the hash, as I have)
    var a = hashstring.split("&");

    // Loop through the values
    for (i = 0; i < a.length; i++)
    {
        // Split the string by '=' (key=value format)
        var b = a[i].split("=");

        // If the key is 'reloaded' (which tells us if the page is reloaded)
        if(b[0] == 'reloaded')
        {
            found = true;
        }
    }
}    

if(!found)
{
    location.hash = 'reloaded=true';
    window.location.reload();
}

// Do other stuff, this will only be executed if the page has been reloaded

我已经将在我的项目中的一个单独的函数中找到哈希中的变量的代码,但是为了简单起见,我只是在上面添加了它。这使得可以确定页面是否已重新加载,并仅在已重新加载时运行代码。

于 2012-05-11T15:01:11.890 回答