0

Wordpress の任意のページにポップアップするように遅延を設定した Fancybox を持っています。ユーザーが提供された入力で何かを送信した後、または一定時間表示されないようにしようとしています。ユーザーがバイパス リンクをクリックします。このサイトで見つかったいくつかのスクリプトを試しましたが、何も機能していないようでした。現在設定しているものは次のとおりです。

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();
    });
4

2 に答える 2

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)をコールバックしています。しかし、すべてのスクリプトを検索すると、これはどこにも宣言されていません。

于 2013-02-25T17:32:35.613 に答える
1

はい、完全に編集できます。必要なのは settimeout 値を作成して、しばらくするとファンシーボックスが飛び出すようにしてから、次のようにプログラムを作成することだけです

    <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;
}

これが役に立ったかどうか教えてください

于 2013-10-05T05:56:37.183 に答える