1

このコードを使用して html ポップアップを開きます。ポップアップが再び表示されないように、Cookie に設定を保存する「二度と表示しない」ボタンを追加したいのですが、なぜそうではないのですか?それは働いていますか?

これは、Cookie を書き込む行です。

document.cookie = "dontShow=1; path=/; expires=Wednesday, 01-Jan-2020 12:00:00 GMT; domain=.qpcftw.co.cc";

更新:問題は、Cookie が保存されておらず、「alert(document.cookie);」(以下を参照) は、Cookie が null であることを示しています (何も表示されていません)。

完全な JS コードは次のとおりです。

/***************************/
//@Author: Adrian "yEnS" Mato Gondelle
//@website: www.yensdesign.com
//@email: yensamg@gmail.com
//@license: Feel free to use it, but keep this credits please!
/***************************/
var popupStatus = 0;

$(document).ready(function(){
        if (document.cookie != "dontShow=1; path=/; expires=Wednesday, 01-Jan-2040 12:00:00 GMT; domain=.qpcftw.co.cc"){
        $("#backgroundPopup").css({
            "opacity": "0.75"
        });
        $("#backgroundPopup").fadeIn(1000);
        $("#popupContact").fadeIn(1000);
        popupStatus = 1;
        }
    //CLOSING POPUP
        //Don't show again
        $("#dontShow").click(function(){
            document.cookie = "dontShow=1; path=/; expires=Wednesday, 01-Jan-2020 12:00:00 GMT; domain=.qpcftw.co.cc";
            alert(document.cookie); //4debugging
            disablePopup();
        });
        //Click the x event!
        $("#popupContactClose").click(function(){
            disablePopup();
        });
        //Click out event!
        $("#backgroundPopup").click(function(){
            disablePopup();
        });
        //Press Escape event!
        $(document).keypress(function(e){
            if(e.keyCode==27 && popupStatus==1){
                disablePopup();
            }
        });
});

//disabling popup with jQuery magic!
function disablePopup(){
    //disables popup only if it is enabled
    if(popupStatus==1){
        $("#backgroundPopup").fadeOut(500);
        $("#popupContact").fadeOut(500);
        popupStatus = 0;
    }
}
4

1 に答える 1

1

これを試して:

フィドルのデモ

document.cookie = 'dontShow=1; expires=Wed, 01 Jan 2020 12:00:00 GMT; path=/';

function readCookie(option) {
    var optionEQ = option + '=';
    var ca = document.cookie.split(';');

    for(var i = 0; i < ca.length; i++) {
        var c = ca[i];

        while(c.charAt(0) === ' ') {
            c = c.substring(1, c.length);
        }

        if (c.indexOf(optionEQ) === 0) {
            return c.substring(optionEQ.length, c.length);
        }
    }

    return false;
}

if (!readCookie('dontShow')) {
    //run your popup code
}

編集:または、カスタム jQuery プラグインとして:

プラグインのバージョン Fiddle

document.cookie = 'dontShow=1; expires=Wed, 01 Jan 2020 12:00:00 GMT; path=/';

(function($) {
    $.fn.readCookie = function(option) {
        var optionEQ = option + '=';
        var ca = document.cookie.split(';');

        for(var i = 0; i < ca.length; i++) {
            var c = ca[i];

            while(c.charAt(0) === ' ') {
                c = c.substring(1, c.length);
            }

            if (c.indexOf(optionEQ) === 0) {
                return c.substring(optionEQ.length, c.length);
            }
        }

        return false;
    }
})(jQuery);

if (!$(document).readCookie('dontShow')) {
    $('#cookie-status').html('<p>Cookie not set.</p>');
} else {
    $('#cookie-status').html('<p>Cookie has been set.</p>');
}

お役に立てれば!:)

于 2012-08-09T01:04:58.433 に答える