禁用带有Cookie的Fancybox弹出窗口

时间:2013-02-25 17:09:14

标签: javascript jquery cookies fancybox

我有一个Fancybox设置延迟弹出我的Wordpress的任何页面,我希望它在用户提交的东西在提供的输入或它没有显示给定的数量后被禁用用户点击旁路链接的时间。我尝试过在这个网站上找到的一些脚本,但似乎没有任何效果,这就是我现在所设定的。

function openFancybox() {
        setTimeout( function() {$('.pop').trigger('click'); },20000);
    }
    $(document).ready(function() {
        var visited = $.cookie('visited');
        if (visited == 'yes') {
            return false;
        } else {
            openFancybox();
        }
        $.cookie('visited', 'yes', { expires: 7 });
        $('.pop').fancybox();
    });

2 个答案:

答案 0 :(得分:1)

请尝试以下操作,看看是否有帮助。

openFancybox = function{
   setTimeout( function() {$('.pop').trigger('click'); },20000);
}

$(document).ready(function() {
   //Declare your cookie.
   $.cookie('visited','no', { expires: 7 });

   //Test to see if your cookie equals 'no', if true then run the fancy box.
   if ($.cookie('visited') == 'no') {
           openFancybox();
   }

   //Your Input or click to stop the fancy box
   $('#StopFancyBox').on('click',function(){
       $.cookie('visited', 'yes');
   });
});

正如@Brad所提到的,您可以使用Web开发人员工具进行测试,以查看您的cookie值是分阶段的。只需转到web.console并回拨$.cookie('visited')

即可

<强>错误

jquery.cookie.jsGET http://www.coreytegeler.com/bolivares/wp-content/themes/max-magazine/source/cookies/jquery.cookie.js 404 (Not Found)

以上似乎是因为jquery.cookie.js文件没有引用正确的位置。

/bolivares/:72SyntaxError: Expected token '('

以上其实是我的错:)抱歉。当声明函数openFancybox时我错过了()。所以它应该是openFancybox = function(){

jquery-plugins.min.js:13TypeError: 'undefined' is not an object (evaluating 'e.browser.msie')
superfish.js:123TypeError: 'undefined' is not a function (evaluating 'jQuery('ul.nav').superfish()')
woocommerce.min.js:1TypeError: 'undefined' is not a function (evaluating 'e(".plus").live')

上面分别与插件jquery-plugins.min.js,superfish.js和woocommerce.min.js冲突。对不起,我不能就这些给出太多指导。

/bolivares/:259ReferenceError: Can't find variable: myLoop

您正在主html页面上的第259行回拨myLoop(i)。但是搜索所有脚本,这并没有在任何地方声明。

答案 1 :(得分:1)

是的,您可以完美地编辑它所有您需要做的就是创建一个settimeout值,以便fancybox在一段时间后弹出,然后像这样编写程序

    <script type="text/javascript">
function openFancybox() {
    setTimeout( function() {$('#fancybox-manual-b').trigger('click'); },5000);
}
$(document).ready(function() {
    var visited = $.cookie('visited');
    $.cookie('visited', 'yes', { expires: 7 }); /*write this first*/
    if (visited == 'yes') {
        function callback(a){
                return function(){
                alert("Hello " + a);
                                    }
                                    }
                var a = "world";
                setTimeout(callback(a), 2000); /*let the page load first*/
                a = "subscriber";
    } else {
        openFancybox();
    }
    $('#fancybox-manual-b').fancybox();
});
</script>

如果你想要你可以改变(我写这个是为了检查cookie是否正常工作)

if (visited == 'yes') {
        function callback(a){
                return function(){
                alert("Hello " + a);
                                    }
                                    }
                var a = "world";
                setTimeout(callback(a), 2000);
                a = "idiotteen";
    }

if (visited == 'yes') {
return false;
}

如果这有助于你,请告诉我