【问题标题】:Javascript - delayed button with cookie checkerJavascript - 带有 cookie 检查器的延迟按钮
【发布时间】:2017-03-30 08:36:36
【问题描述】:

我正在尝试做一些仍然超出我能力范围的事情。我在网站上使用之前的脚本在视频时间 1 分钟后显示 Button。因此,当视频播放器到达 01:00 时,会显示该按钮,然后将其保存到 cookie 中,以便下次您访问页面时,它会立即显示,您无需再等待 1 分钟,因此可以显示按钮。

但现在我试图将此计时器连接到网站时间,而不是视频时间,我很迷茫。

索引页面中的函数调用:

<script type="text/javascript">
var minuten = 0;
var sekunden = 5;

//==========================
cartt(minuten, sekunden);   
</script>

这是视频时间的原始代码:

 $("#video").fitVids(); 
 var video = new Vimeo.Player($('#video iframe'));
 function cart(minuten, sekunden) {

    var button = $('.cart');
    var seconds = (minuten * 60) + sekunden;
    var url = window.location.pathname;
    url = url.split("/");
    var seite = url[url.length -1];
    var cookie_string = "cartbutton_" + seite + "=show";
    var cookieIsSet = function() { return document.cookie.indexOf(cookie_string) != -1; };

    if(!cookieIsSet()) {
        button.hide();

        video.on('timeupdate', function(data) {
            if (data.seconds >= seconds && !cookieIsSet()) {
                button.show();
                document.cookie = cookie_string + "; max-age=259200";
            }
        });
    }

}

这就是我试图获得网站时间的方式:

window.onload=function(){
      var start=Date.now();

}
function cartt(minuten, sekunden) {

    var button = $('.cartt');
    var seconds = (minuten * 60) + sekunden;
    document.write(seconds);
    var url = window.location.pathname;
    url = url.split("/");
    var seite = url[url.length -1];
    var cookie_string = "cartbutton_" + seite + "=show";
    var cookieIsSet = function() { 
        return document.cookie.indexOf(cookie_string) != -1; 

        };



    if(!cookieIsSet()) {

     start.on(function(data) {
            if (data.seconds >= seconds && !cookieIsSet()) {
                button.show();
                document.cookie = cookie_string + "; max-age=259200";
            }
        });

        button.hide();


    }

}

【问题讨论】:

    标签: javascript php jquery cookies backend


    【解决方案1】:

    (代表 OP 发布)

    我自己设法做到了,因为没有答案,而且我在网上找不到这个答案,我会分享我的解决方案。

    在索引页面上:

      <script type="text/javascript">
        var videoShow = getCookie('video-show');
        jQuery(document).ready(function() {
            if(videoShow) {
                jQuery('.cartt').show();
            }
            else {
                setTimeout(
                    function(){
                        jQuery('.cartt').show();
                        setCookie('video-show', 1, 365);
                    }, 5000            );
            }
      });
        </script>
    

    脚本:

    function setCookie(c_name,value,expiredays)
    {
    var exdate=new Date();
    var dpath = '/';
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toUTCString())+";path="+dpath;
    }
    
    function getCookie(c_name)
    {
    if (document.cookie.length>0)
      {
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start!=-1)
        {
        c_start=c_start + c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end==-1) c_end=document.cookie.length;
        return unescape(document.cookie.substring(c_start,c_end));
        }
      }
    return "";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 2014-05-17
      相关资源
      最近更新 更多