我有一个网站,当他们访问弹出并在其内部具有一些信息上的fancybox。 我想补充某种按钮,用户可以点击,并设置一个cookie不显示消息约一个月左右。
我很没用,当谈到这样的事情,因此,如果任何人都可以走,虽然我做什么,这将是真棒。
这是我到目前为止所。 在底部,我已经添加了什么,我想可能是所提出的cookie(“NOSHOW”)锚,但我不知道它是否会工作喜欢它。 我已经加载的所有的jQuery的脚本此之前的fancybox,之后那些太加载jquery.cookie.js。 如果它的事项,我使用的是什么了的fancybox 2最新的下载。
<script type="text/javascript">
function openFancy() {
setTimeout( function() {$('#autoStart').trigger('click'); },1000);
}
$(document).ready(function() {
openFancy();
$('#autoStart').fancybox();
});
</script>
<!-- This is the popup itself -->
<a id="autoStart" style="display:none" href="#autoFancybox"></a>
<div style="display: none;">
<div id="autoFancybox" style="width: 800px">
<div>
<!-- My content for the Fancybox is here -->
<br />
<p style="font-size:10px" align="right">
<a id="noShow" href="#noShow">Don't me show this message again</a>
</p>
</div>
</div>
</div>
谢谢,利亚姆。
除了你的功能启动的fancybox,再拍设置cookie的值和到期时间单击按钮时:
function dontShow(){
$.fancybox.close(); // optional
$.cookie('visited', 'yes', { expires: 30 }); // set value='yes' and expiration in 30 days
}
...然后再验证cookie,并决定是否启动fancybor与否:
$(document).ready(function() {
var visited = $.cookie('visited'); // create cookie 'visited' with no value
if (visited == 'yes') {
return false;
} else {
openFancy(); // cookie has no value so launch fancybox on page load
}
$('#autoStart').fancybox(); // bind fancybox to selector
}); // ready
......现在您的按钮的HTML
<a id="noShow" href="javascript:dontShow()">Don't show this message again</a>
见工作演示
有一个伟大的jQuery插件,用于管理Cookie,你应该看看- https://github.com/carhartl/jquery-cookie
当用户点击你的网站,你可以检查你的cookie,看看他们是否已经有前。 如果他们没有再显示动画,并设置cookie。 如果他们那么不运行动画。
从jQuery的cookie的文档一目了然,你可以设置一个cookie 7天,像这样:$ .cookie(“访问”,“是”,{到期:7}); 所以,你的代码可能是这样的:
// Make sure DOM has fully loaded before running code
$(function(){
if( ! $.cookie('visited')){
// Your code here
} else {
$.cookie('visited', 'yes', { expires: 7 });
}
});