4

我正在尝试向我一直在处理的网站添加一个非侵入性的“注册我们的时事通讯”弹出窗口,但希望该弹出窗口仅在用户访问该网站超过 3 小时后出现分钟左右。如果有人可以帮助我实现这一目标,那就太好了。

提前谢谢大家

4

2 回答 2

7

是的,所以有几件事需要考虑。您的弹出窗口显示属性、将显示您的弹出窗口的函数以及在您的函数触发之前需要经过的时间量。

<style>
 .SignupPopup{display:none}
</style>


<!-- Page HTML -->
<div id="SignupPopup" class="SignupPopup"></div>



<script>

  // Function that displays your popup
  function popSignupForm(){
     document.getElementById('SignupPopup').style.display = 'block';
  }

  // Using setTimeout to fire the popSignupForm function
  // in 3 minutes time (this is done in milliseconds)
  setTimeout( function(){
     popSignupForm();
  }, 180000 );

</script>

只要用户在同一页面上停留 3 分钟,这将起作用。如果您希望弹出窗口在 3 分钟后出现在您的网站上,您需要创建一个 cookie 并在用户第一次到达您的网站时为其添加时间戳。然后,您可以每隔 x 间隔测量经过的秒数(从时间戳开始),以查看是否有时间弹出您的时事通讯注册表单。

伪将如下所示:

function onPageLoad(){

     If Cookie Doesn't exist for your site
        Create Cookie
        Record Timestamp


     //Start Checking the cookie to see if 
     //it's time to show the popup
     checkCookieTime()

}

function checkCookieTime(){

    // Check to see if at least 3 minutes
    // Have elapsed from the time of the cookie's
    // cookie's creation
    If Now is >= (Cookie.TimeStamp  + 3 minutes )
      popSignupForm()
    Else
      // Check again in 10 Seconds
      setTimeout( function(){
        checkCookieTime()
      }, 10000 );

}

这是来自 quirksmode 的一篇关于读/写 cookie的好文章。

于 2012-07-04T15:39:07.153 回答
6

您可以在 javascript 中使用 settimeout 函数

setTimeout(function(){},time);
于 2012-07-04T15:30:28.697 回答