admin管理员组文章数量:1278854
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 () 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=".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=";amp;fs=1&autoplay=1"><img src=".jpg" alt=""/></a>
</body>
</html>
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./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./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./watch?v=ROTYmNckBCw&fs=1&autoplay=1"><img src="http://fancyapps./fancybox/demo/1_s.jpg" alt=""/></a>
</body>
</html>
Share
Improve this question
edited May 5, 2014 at 15:16
user3519727
asked May 2, 2014 at 15:36
user3519727user3519727
3612 gold badges4 silver badges10 bronze badges
3 Answers
Reset to default 6For 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/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
Using the jQuery cookie plugin you suggested:
$(document).ready(function() {
if(typeof $.cookie('popupVideoPlayed') == 'undefined') {
$.cookie('popupVideoPlayed', 'true'); // set a session cookie so it won't play again
$('#yt').trigger('click');
}
});
Remember to delete the inline body onload event handler.
¡UPDATED!
If you're using the newest JavaScript Cookie plugin this is for you:
HTML
<a class="c-p" href="#cookies" style="display: none;">Inline</a>
<div id="cookies" style="display: none;">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Dignissimos rem nulla quae dolorum omnis possimus, ducimus nisi pariatur harum debitis quo, excepturi nam ratione modi. Architecto, enim. Amet, saepe mollitia?</p>
</div>
JavaScript
function openFancybox() {
setTimeout( function() {jQuery('.c-p').trigger('click'); },1500);
}
jQuery(document).ready(function() {
if (Cookies.get('visited')) {
return false;
} else {
Cookies.set('visited', 'no', { expires: 7 });
}
if (Cookies.get('visited') == 'yes') {
return false;
} else {
openFancybox();
Cookies.set('visited', 'yes');
}
jQuery('.c-p').fancybox();
});
Note: I implemeted it in my custom WordPress theme and it worked perfectly.
本文标签: javascriptFancybox popup once time for sessionStack Overflow
版权声明:本文标题:javascript - Fancybox popup once time for session - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741270616a2369216.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论