我在访问时弹出的网站上有 FancyBox ,其中包含一些信息。我想添加一些用户可以点击的按钮,并设置一个cookie,大约一个月左右不会显示该消息。
当谈到这样的事情时,我很无用,所以如果有人能告诉我该做什么,那就太棒了。
这是我到目前为止所拥有的。在底部,我添加了我认为可能是建议的cookie(“noShow”)的锚,但我不确定它是否会像它一样工作。我之前为FancyBox加载了所有jQuery脚本,之后它也加载了 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>
谢谢, 小连
答案 0 :(得分:6)
除了启动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>
参见 working DEMO
答案 1 :(得分:0)
有一个很好的用于cookie管理的jQuery插件,您应该查看 - https://github.com/carhartl/jquery-cookie
当用户点击您的网站时,您可以检查您的Cookie,看看他们之前是否曾在那里。如果他们没有,则显示您的动画并设置cookie。如果他们没有运行动画。
通过浏览jquery-cookie文档,您可以设置7天的cookie,如下所示: $ .cookie('visited','yes',{expires:7}); 所以你的代码可能如下:
// Make sure DOM has fully loaded before running code
$(function(){
if( ! $.cookie('visited')){
// Your code here
} else {
$.cookie('visited', 'yes', { expires: 7 });
}
});