ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – Fancybox弹出一次会话时间

2019-10-07 01:34:37  阅读:220  来源: 互联网

标签:javascript jquery cookies popup fancybox


我有一个带有fancybox的弹出窗口,显示在加载页面上.

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

我读过可以使用cookie插件(https://github.com/carhartl/jquery-cookie),但我不明白如何集成这段代码……

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

这是代码:

<!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 onl oad='$("#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>

解决方法:

对于浏览器一致性,您可能需要首次延迟fancybox加载执行,因此请尝试以下代码:

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;
    });
});

请参阅此JSFIDDLE的代码

注意:

>为了看到cookie工作,您可能需要使用jsfiddle的全屏模式http://jsfiddle.net/aVE9N/show/
>我建议你更新(至少)你的fancybox版本从v1.3.1到v1.3.4
>假设您正在正确加载页面中的jQuery cookie plugin

标签:javascript,jquery,cookies,popup,fancybox
来源: https://codeday.me/bug/20191007/1863836.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有