【问题标题】:Show popup and reset timer on refresh刷新时显示弹出窗口和重置计时器
【发布时间】:2015-10-28 07:57:24
【问题描述】:

我正在为未登录的用户显示一个弹出窗口。我使用 javascript 和 PHP 执行此操作。

<?php

if ( ( is_single() || is_front_page() || is_page() ) 
       && !is_page('login') && !is_page('register') && !is_user_logged_in()){

    echo'<div class="overlay-bg">
</div>
<div class="overlay-content popup3">
    <h1>You must login or Register to view this site. do_shortcode("[sp_login_shortcode]");</h1>
</div>';
} 

?>

Javascript代码如下

$(document).ready(function(){

    // function to show our popups
    function showPopup(whichpopup){
        var docHeight = $(document).height(); //grab the height of the page
        var scrollTop = $(window).scrollTop(); //grab the px value from the top of the page to where you're scrolling
        $('.overlay-bg').show().css({'height' : docHeight}); //display your popup background and set height to the page height
        $('.popup'+whichpopup).show().css({'top': scrollTop+20+'px'}); //show the appropriate popup and set the content 20px from the window top
    }

    // function to close our popups
    function closePopup(){
        $('.overlay-bg, .overlay-content').hide(); //hide the overlay
    }

    // timer if we want to show a popup after a few seconds.
    //get rid of this if you don't want a popup to show up automatically
    setTimeout(function() {
        // Show popup3 after 2 seconds
        showPopup(3);
    }, 4000);


});

我想在访问者第一次访问网站时在 5 分钟后显示弹出窗口。但是,当同一个访问者刷新页面或将来再次访问时,我想立即显示弹出窗口,而不是 5 分钟后。

请问如何在上面的代码中实现这一点。请帮忙。

谢谢

【问题讨论】:

  • cookies 会帮助你的。

标签: javascript php wordpress popup


【解决方案1】:

在朋友的帮助下,我得到了自己的答案。cookie应该设置如下

<?php
setcookie("visited",true);

if(!empty($_COOKIE['visited']) && $_COOKIE['visited'] == true)
 $popup_time = 0;
 else
 $popup_time = 60000; 
?>

这里 $popup_time 变量被设置为函数 javascript 代码,如下所示

setTimeout(function() {
        // Show popup3 after 2 seconds
        showPopup(3);
    }, <?php echo $popup_time?>);

就是这样:)。我很沮丧,没有人在这里给我正确的方法。

还是谢谢

【讨论】:

    【解决方案2】:

    这里是关于如何实现这一点的想法。

    1. 用户打开页面
    2. 检查是否设置了 cookie is_first_time

      2a。如果未设置,则在 5 分钟后显示弹出窗口并设置 is_first_time cookie
      2b。如果已经设置立即显示弹出窗口

    【讨论】:

    • 能否请您给我确切的代码。我对饼干一无所知。如何设置 cookie 以及在哪里设置 plz
    • 如何从 cookie 创建和读取值? stackoverflow.com/q/4825683/1288198
    • 正如我所说,我不是 java 或 php 方面的专家。你能告诉我如何修改我的 php 或 java 代码吗?请在这里给我正确的代码
    • 其实我知道你说的这个想法,但是不知道具体的方式如何在我的代码中实现
    猜你喜欢
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 2020-03-08
    • 2015-06-27
    • 2014-10-29
    相关资源
    最近更新 更多