Fancybox弹出窗口一次为会话 [英] Fancybox popup once time for session

查看:175
本文介绍了Fancybox弹出窗口一次为会话的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个弹出窗口,在加载页面显示fancybox。



我需要每次显示一次弹出窗口,如果用户更改页面并返回页面



我已阅读,可以使用cookie插件( https://github.com/carhartl/jquery-cookie ),但我不知道如何整合在这段代码...



我在html / css中有一个简单的网站。



这是代码:

 <!DOCTYPE html> 

< html>
< head>
< meta http-equiv =Content-Typecontent =text / html; charset = UTF-8/>
< title>< / title>
< script type =text / javascriptsrc =http://code.jquery.com/jquery-1.4.2.min.js> < / script>
< script type =text / javascriptsrc =jquery.fancybox-1.3.1.js>< / script>
< link rel =stylesheettype =text / csshref =jquery.fancybox-1.3.1.cssmedia =screen/>
< script src =jquery.cookie.js>< / script>


< script type =text / javascript>
function openFancybox(){
setTimeout(function(){
$('#yt')。trigger('click');
},500);
};
$(document).ready(function(){
var visited = $ .cookie('visited');
if(visited =='yes'){
false; //第二页加载,cookie活动
} else {
openFancybox(); //第一页加载,启动fancybox
}
$ .cookie 'yes',{
expires:7 // cookie的有效天数
});
$(#yt)click(function(){
$ .fancybox({
'padding':0,
'autoScale':false,
'transitionIn':'none',
'transitionOut':'none'
'title':this.title,
'width':680,
'height':495,
'href':this.href.replace(new RegExp watch \\?v =,i),'v /'),
'type':'swf',
'swf':{
'wmode' 'transparent',
'allowfullscreen':'true'
}
});
return false;
});
});
< / script>
< / head>

< body onload ='$(#yt)。trigger(click);'>

< a id =ythref =https://www.youtube.com/watch?v=ROTYmNckBCw&amp;fs=1&amp;autoplay=1>< ; img src =http://fancyapps.com/fancybox/demo/1_s.jpgalt =/>< / a>
< / body>
< / html>


解决方案

为了浏览器的一致性,您可能需要延迟fancybox第一次加载执行所以请尝试这样的代码:

  function openFancybox(){
//启动fancybox后第二次调用
setTimeout(function(){
$('#yt')。trigger('click');
},500);
};
$(document).ready(function(){
var visited = $ .cookie('visited'); //创建cookie
if(visited =='yes'){
return false; //第二页加载,cookie是活动的,所以不做任何操作
} else {
openFancybox(); //第一页加载,启动fancybox
};
//分配cookie的值和到期时间
$ .cookie('visited','yes',{
expires:7 // cookie的有效天数
} );
//你的正常fancybox脚本
$(#yt)。click(function(){
$ .fancybox({
// your fancybox API options
});
return false;
});
});

查看此 JSFIDDLE



注意




  • 为了查看Cookie的正常工作,您可能需要使用jsfiddle的全屏模式 http:// jsfiddle。 net / aVE9N / show /

  • 我建议你更新(至少)你的fancybox版本从v1.3.1到v1.3.4

  • 假设您在网页中正确加载 jQuery Cookie插件

  • ul>

    I have a popup with fancybox that appear at load page.

    I need to show the popup once a time, if the user change page and back on the page with popup doesn't reveal a second time.

    I've read that could be use a cookie plug in (https://github.com/carhartl/jquery-cookie) but i dont understant how integrate in this code...

    I have a simple site in html/css.

    This is the code:

    <!DOCTYPE html>
    
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title></title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js">     </script>
    <script type="text/javascript" src="jquery.fancybox-1.3.1.js"></script>
    <link rel="stylesheet" type="text/css" href="jquery.fancybox-1.3.1.css" media="screen" />
    <script src="jquery.cookie.js"></script>
    
    
    <script type="text/javascript">
    function openFancybox() {
    setTimeout(function () {
        $('#yt').trigger('click');
    }, 500);
    };
    $(document).ready(function () {
    var visited = $.cookie('visited');
    if (visited == 'yes') {
        return false; // second page load, cookie active
    } else {
        openFancybox(); // first page load, launch fancybox
    }
    $.cookie('visited', 'yes', {
        expires: 7 // the number of days cookie  will be effective
    });
    $("#yt").click(function() {
                $.fancybox({
                        'padding'        : 0,
                        'autoScale'      : false,
                        'transitionIn'   : 'none',
                        'transitionOut'  : 'none',
                        'title'          : this.title,
                        'width'          : 680,
                        'height'         : 495,
                        'href'           : this.href.replace(new RegExp("watch\\?v=", "i"),  'v/'),
                        'type'           : 'swf',
                        'swf'            : {
                            'wmode'              : 'transparent',
                            'allowfullscreen'    : 'true'
                        }
                    });
        return false;
    });
    });
    </script>
    </head>
    
    <body onload='$("#yt").trigger("click");'>
    
      <a id="yt" href="https://www.youtube.com/watch?v=ROTYmNckBCw&amp;fs=1&amp;autoplay=1"><img  src="http://fancyapps.com/fancybox/demo/1_s.jpg" alt=""/></a>
    </body>
    </html>
    

    解决方案

    For browser consistency, you may need to delay the fancybox load execution for the first time so try this code :

    function openFancybox() {
        // launches fancybox after half second when called
        setTimeout(function () {
            $('#yt').trigger('click');
        }, 500);
    };
    $(document).ready(function () {
        var visited = $.cookie('visited'); // create the cookie
        if (visited == 'yes') {
            return false; // second page load, cookie is active so do nothing
        } else {
            openFancybox(); // first page load, launch fancybox
        };
        // assign cookie's value and expiration time
        $.cookie('visited', 'yes', {
            expires: 7 // the number of days the cookie will be effective
        });
        // your normal fancybox script
        $("#yt").click(function () {
            $.fancybox({
                // your fancybox API options
            });
            return false;
        });
    });
    

    See code at this JSFIDDLE

    NOTES :

    • In order to see the cookie working, you may need to use jsfiddle's full screen mode http://jsfiddle.net/aVE9N/show/
    • I would advice you to update (at least) your fancybox version from v1.3.1 to v1.3.4
    • It's assumed you are loading properly the jQuery cookie plugin in your page

    这篇关于Fancybox弹出窗口一次为会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆