Fancybox popup once time for session(Fancybox 弹出一次会话)
问题描述
我在加载页面上有一个带有花式框的弹出窗口.
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.
我读过可以使用 cookie 插件 (https://github.com/carhartl/jquery-cookie)但我不明白如何在这段代码中集成......
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...
我有一个简单的 html/css 网站.
I have a simple site in html/css.
这是代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
<script type="text/javascript" src="aHR0cDovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS40LjIubWluLmpz"> </script>
<script type="text/javascript" src="anF1ZXJ5LmZhbmN5Ym94LTEuMy4xLmpz"></script>
<link rel="stylesheet" type="text/css" href="jquery.fancybox-1.3.1.css" media="screen" />
<script src="anF1ZXJ5LmNvb2tpZS5qcw=="></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&fs=1&autoplay=1"><img src="aHR0cDovL2ZhbmN5YXBwcy5jb20vZmFuY3lib3gvZGVtby8xX3MuanBn" alt="Ii8mZ3Q7Jmx0Oy9hJmd0OwombHQ7L2JvZHkmZ3Q7CiZsdDsvaHRtbCZndDsKPC9jb2RlPjwvcHJlPgo8cCBjbGFzcz0="cn">
推荐答案
为了浏览器的一致性,第一次可能需要延迟fancybox加载执行,试试这段代码:
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;
});
});
查看这里的代码 JSFIDDLE
See code at this JSFIDDLE
注意事项:
- 为了看到 cookie 工作,您可能需要使用 jsfiddle 的全屏模式 http://jsfiddle.net/aVE9N/show/
- 我建议您(至少)将您的 fancybox 版本从 v1.3.1 更新到 v1.3.4
- 假设您在页面中正确加载了 jQuery cookie 插件
这篇关于Fancybox 弹出一次会话的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Fancybox 弹出一次会话


- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- 失败的 Canvas 360 jquery 插件 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- 400或500级别的HTTP响应 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01