【问题标题】:Automatically Show a Popup when it reaches 5PM without a refresh (In real time)到下午 5 点时自动显示弹出窗口而不刷新(实时)
【发布时间】:2020-03-08 14:25:43
【问题描述】:

我已经在网上搜索了我的结果,但我无法找到任何正确的解决方案。 我希望我的页面在每天下午 5:00 之前自动显示一个弹出窗口,而无需刷新页面。 因此,如果我在下午 4:50 或下午 5:00 之前的任何时间访问一个页面,一旦我仍在该页面上,它应该会自动弹出一个 div 而无需刷新页面。

我尝试使用此代码,但我必须刷新页面才能工作,这似乎效率不高。

  $(document).ready(function() {      
      var currentTime = toUTC(new Date());

      var startTime = toUTC(new Date());
      var endTime = toUTC(new Date());

      startTime.setHours(20);
      startTime.setMinutes(10);
      startTime.setSeconds(59);
      endTime.setHours(20);
      endTime.setMinutes(0);
      endTime.setSeconds(0);

      var currentTimez = (currentTime.getHours() + 1);

      if (currentTimez == 20 && currentTime.getMinutes() == 20){
          popup();
      }
  });

  function popup() {
      alert("Thanks")
  }

  function toUTC(inDate) {
      inDate.setMinutes(inDate.getMinutes() + inDate.getTimezoneOffset());
      return inDate;
  }

我不介意我是否必须点击数据库才能完成这项工作或使用 cookie。

【问题讨论】:

    标签: javascript jquery html ajax cookies


    【解决方案1】:

    你需要使用计时器

    var current = new Date();
    var fivePM = new Date(current.getYear(), current.getMonth(), current.getDayOfMonth());
    fivePM.setHour(17);
    if (current < fivePM) {
      var diff = fivePM.getTime() - current.getTime();
    }
    var timerID = setTimeout(popup, diff);
    

    【讨论】:

    • 我对javascript不是很熟悉。这个完整的代码会在下午 5 点成功运行吗?如有错误请修改。 &lt;script&gt; $(document).ready(function() { var current = new Date(); var fivePM = new Date(current.getYear(), current.getMonth(), current.getDayOfMonth()); fivePM.setHour(23); if (current &lt; fivePM) { var diff = fivePM.getTime() - current.getTime(); } var timerID = setTimeout(popup, diff); function popup() { alert("Thanks") } } &lt;/script&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多