仅在首次访问页面时显示jQuery弹出窗口

时间:2015-08-22 10:27:02

标签: jquery

我是jQuery的新手,我的网站上有一些需求。我想在第一次显示jQuery div弹出窗口时才会出现。无需一次又一次地展示。

我仍在使用这个,但我不知道如何隐藏第二次:

var isshow=0;
$(document).ready(function() {
   if (isshow == 0) {
     $('#jPopup').show();
   }
   isshow = 1;
});

但ishow变量每次都会初始化。

5 个答案:

答案 0 :(得分:21)

您可以使用localstorage。它易于理解和使用。

$(document).ready(function() {
    var isshow = localStorage.getItem('isshow');
    if (isshow== null) {
        localStorage.setItem('isshow', 1);

        // Show popup here
        $('#jPopup').show();
    }
});

首次访问您的网站时会显示弹出窗口。

答案 1 :(得分:5)

您可以根据需要使用SessionStorageLocalStorage

如果您只需要为该会话执行,请使用SessionStorage。如果它应永久存储在用户的浏览器中,请使用LocalStorage。

    $(document).ready(function(){
        if(sessionstorage && !sessionStorage.getItem('isshow')){
            $('#jPopup').show();
            sessionStorage.setItem('isshow', true);
        }
    });

答案 2 :(得分:4)

您可以将localStorage用于此目的,如下所示:

$(document).ready(function(){
   var shown= localStorage.getItem('isshow');
    if(shown !="t"){
        $('#jPopup').show();
        localStorage.setItem('isshow', "t");
    }
});

答案 3 :(得分:4)

您可以设置一个cookie来存储一个值并检查它是否未设置然后显示弹出窗口:

$(document).ready(function() {
    var isshow = $.cookie("isshow");
    if (isshow == null) {
        $.cookie("isshow", 1); // Store

        // Show popup here
        $('#jPopup').show();
    }
});

或者您可以设置localStorage。这是一个有效的例子。 jsFiddle

$(document).ready(function() {
    if(localStorage.getItem('popState') != 'shown') {
        $("#popup").delay(2000).fadeIn();
        localStorage.setItem('popState','shown')
    }
});

答案 4 :(得分:2)

您需要在加载时隐藏它或在css(推荐)中执行它,然后检查localstorage以查看它是否是第一次访问。

$(document).ready(function() {
        $('#jPopup').hide(); //hide on load or in css, later check if its the first visit
        var isshow= localStorage.getItem('status');
        //check if it is the first visit
        if (isshow == null || isshow == '') {
            //set variable to 1
            localStorage.setItem('isshow', 1);
            $('#jPopup').show();
        }
        });