【问题标题】:JavaScript page reload timer with alert带有警报的 JavaScript 页面重新加载计时器
【发布时间】:2016-06-14 23:50:33
【问题描述】:

我要做的是在 59 分钟后重新加载页面,并在页面重新加载后显示一条消息,说明页面已重新加载。然后再次设置计时器并重复相同的操作。我在隐藏和显示警报时遇到了麻烦,并且在第一次刷新后对逻辑也有些迷失。 这是我目前所拥有的:

<!DOCTYPE html>
<html lang="en">
<head>
  <title></title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://maxcdn.Bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jQuery/1.12.2/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<script language="JavaScript"> <!--
function checkRefresh()
{
    if( document.refreshForm.visited.value == "" )
    {
        // This is a fresh page load
        document.refreshForm.visited.value = "1";
  document.getElementById(a).style.visibility="hidden";
    window.setTimeout(myalertfunction, 59 * 60 * 1000)
    }
    else
    {
document.getElementById(a).style.visibility="visible";
        // This is a page refresh
window.setTimeout(myalertfunction, 59 * 60 * 1000)
    }
} -->
</script>

</head>

<body onLoad="JavaScript:checkRefresh();">
<div class="alert alert-info fade in" id="a">
    <a href="#" "class="close" data-dismiss="alert" aria-label="close">&times;</a>
    <strong>Info!</strong> This Page has been reloaded!
  </div>
<form name="refreshForm">
<input type="hidden" name="visited" value="" />
</form>

</body>
</html>

【问题讨论】:

  • 您可以使用&lt;meta http-equiv="refresh" content="[seconds]"&gt;自动刷新页面

标签: javascript jquery twitter-bootstrap


【解决方案1】:

尝试使用&lt;meta&gt;标签

<meta http-equiv="refresh" content="5; URL=http://www.example.com/test.html">

或 JavaScript 的 setTimeout()

setTimeout(function(){
    window.location.reload(1);
},60000)

JSFiddle Demo

【讨论】:

    【解决方案2】:

    也许你可以试试这样的:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <title></title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="http://maxcdn.Bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
      <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
      <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    </head>
    <script language="JavaScript"> 
    function getParameterByName(name, url) {
        if (!url) url = window.location.href;
        name = name.replace(/[\[\]]/g, "\\$&");
        var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
            results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, " "));
    }
    
    $(document).ready(function() {
        var visitedValue = getParameterByName('visited',window.location.href);
        if (visitedValue === '1') {
          $('#a').show();
        }
        setTimeout(function(){
    
          $('#visited').val('1');
          $('#refreshForm').action = window.location.href;
          $('#refreshForm').submit();
        },3540000);
    });
    </script>
    
    </head>
    
    <body>
    <div class="alert alert-info fade in" id="a" style="display:none;">
        <a href="#" "class="close" data-dismiss="alert" aria-label="close">&times;</a>
        <strong>Info!</strong> This Page has been reloaded!
      </div>
    <form name="refreshForm" id="refreshForm">
      <input type="hidden" id="visited" name="visited" value="" />
    </form>
    </body>
    </html>
    

    【讨论】:

    • 这对你有用吗,因为这对我不起作用。
    • 我在 Internet Explorer 和 Firefox 上测试了代码。该代码的工作原理如下:第一次打开页面时,屏幕上没有消息。在 setTimeout 函数中的时间限制后,提交表单并再次加载页面。然后,消息出现在屏幕上。我建议您尝试更短的超时延迟。大约 5000(5 秒)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 2019-09-29
    • 2022-07-06
    • 1970-01-01
    • 2015-09-01
    • 2019-03-31
    相关资源
    最近更新 更多