0

我正在编写代码,该代码将为首次使用 ColorBox 的访问者发送消息。我一直在引导代码,这就是我到目前为止所拥有的......

<html>
<head>
<script type="text/javascript">
<script src="../colorbox/jquery.colorbox.js"></script>
<script type="text/javascript" src="scripts/jquery.cookies.2.2.0.min.js"></script>

<script>


function loadMsg()
{
$(document).ready(function(){
if ($.cookie('newsletter') != '0') {
$.colorbox({href:"newsletter.html"});
$.cookie('newsletter', '1', { expires: 60}); }
}}

</script>
</head>

<body onload="loadMsg()">
<h1>Hello World!</h1>
</body>
</html>

这会阻止弹出窗口第二次出现。你能帮我弄清楚我错过了什么吗?

4

2 回答 2

0

你用什么插件做cookies?我怀疑 $.cookie('newsletter') 在不存在 cookie 时返回字符串值 '0' 。我想它会返回一个错误的值。你确定它不应该是这样的:

if (!$.cookie('newsletter')) {
    $.colorbox({href:"newsletter.html"});
    $.cookie('newsletter', '1', { expires: 60}); }
}

或者删除 cookie 插件并编写您自己的 cookie 检测代码。像这样的一次性用例并不难。

于 2012-05-22T02:15:38.800 回答
0

上面的代码可能会吐出不是函数并且是未定义的错误。

这是今天应该可以使用的更新代码(请注意,我正在使用jQuery Cookie 库):

<html>
<head>

<script type="text/javascript" src="/js/colorbox/jquery.colorbox-min.js"></script>
<script type="text/javascript" src="/js/jquery-cookie/jquery.cookie.js"></script>

<script type="text/javascript">

    function loadMsg(){

        jQuery.noConflict();
        jQuery(document).ready(function(){
            if (!jQuery.cookie('popupcookie')) {
                jQuery.colorbox({href:"newsletter.html", width: 640, height: 460});
                jQuery.cookie('popupcookie', '1', { expires: 1}); }
        })}

</script>
</head>

<body onload="loadMsg()">
  <h1>Hello World!</h1>
</body>

</html>

这应该让你继续前进。顺便说一句,在此示例中,到期时间设置为 1 天。

于 2014-08-22T17:52:00.620 回答