0

Stackoverflow.com など、30 日ごと (またはその他の設定期間) に起動する Cookie を設定しようとしています。

ここで役立つと思われる答えを見つけました。これまでのテスト コードは次のとおりです。 HTML + イニシエーター

<html>
    <head>
        <!-- Load JQuery 1.8.3 and the repeatablePopup functions-->
        <script src="js/jquery-1.8.3.min.js"></script>
        <script src="js/repeatablePopup.js"></script>

        <script>
            jQuery(document).ready(function() {
                var visited = readCookie('visited');
                if (!visited || visited !== "true") {
                    createCookie('visited', "true", 7);
                } else {
                        window.open("http://stackoverflow.com");
                }
            });
        </script>
    </head>

    <body>
        <p>Setting Cookie</p>
    </body>

</html>

repeatablePopup.js の関数

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
    document.write('Cookie is set');
}

function readCookie(name) {
    var nameEQ = name + "=";
    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(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

編集: 問題は、Cookie が存在するにもかかわらず、ページを更新するたびに Cookie が植えられることです。そのため、最終的にポップアップは機能しません。

助けてくれてありがとう、シャハール

4

2 に答える 2

0

これを試して:

jQuery(document).ready(function () {
    if (!readCookie('visited')) {
        window.open("http://stackoverflow.com");
        createCookie('visited', null, 30);
    }
});

Cookieが存在しない場合は、ポップアップウィンドウが開きます。ポップアップウィンドウが開いたら、Cookieを設定します。30日後、Cookieの有効期限が切れ、すべてが通常の状態に戻り、同じことを再度実行します。

于 2013-01-06T13:40:23.017 に答える