每个浏览器会话弹出一次cookie [英] Popup cookie once per browser session

查看:85
本文介绍了每个浏览器会话弹出一次cookie的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个非常简单的弹出窗口,我想设置一个cookie,所以当访问者第一次访问页面/类别时,他将能够看到弹出窗口,如果他导航出页面并返回,直到他结束会话(关闭浏览器),弹出窗口才会出现。感谢!

I have a very simple popup, I would like to set a cookie, so when the visitor visits the page / category for the first time he will be able to see the popup and if he navigates out of the page and comes back, the popup won't appear until he ends the session (closes the browser). Thanks!

<script type="text/javascript">
var link;
var element;
t = setTimeout(openPopUp, 3000);

function openPopUp() {
element = document.getElementById("background");
element.style.display = "block";
element = document.getElementById("popup");
element.style.display = "block";
}

function closePopUp() {
element = document.getElementById("popup");
element.style.display = "none";
element = document.getElementById("background");
element.style.display = "none";
}
</script>

编辑:来自评论:

From comments:

var createCookie = Openpopup(name, value, days) {
    var expires;
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (60 * 1000));
        expires = ";
        expires = " + date.toGMTString();
    } else {
        expires = "";
    }
    document.cookie = name + "=" + value + expires + ";
    path=/";
} 


推荐答案

代码):

Something in the like (untested code):

var link;

// ....


if(getCookie("was_here_before")=="") {
    setTimeout(openPopUp, 3000);
    createCookie("was_here_before", "yes", 1);
}

// ....



// these are from SO answer in first comment by Sverri M. Olsen
// [ http://stackoverflow.com/questions/4825683/how-do-i-create-and-read-a-value-from-cookie ]



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

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) {
                c_end = document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}


// ....


function openPopUp(url) {
    var element;
    link = url; // don't know what this is for
    element = document.getElementById("background");
    element.style.display = "block";
    element = document.getElementById("popup");
    element.style.display = "block";
}

function closePopUp() {
    var element;
    element = document.getElementById("popup");
    element.style.display = "none";
    element = document.getElementById("background");
    element.style.display = "none";
}

这篇关于每个浏览器会话弹出一次cookie的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆