Javascript jQuery:在我的网站上2秒钟后显示div,但只显示一次,而不是每次刷新页面或进入其他页面时

Javascript jQuery:在我的网站上2秒钟后显示div,但只显示一次,而不是每次刷新页面或进入其他页面时,javascript,jquery,Javascript,Jquery,我有一个带有博客的网站 无论何时输入,我都希望显示一个弹出div。 (这部分很简单-) 我想让它运行一次,可能是pare会话或IP,我会解释: 当用户打开博客页面时,2秒钟后,他将看到弹出窗口。然后他可以点击X按钮隐藏它,继续浏览博客,输入新页面,不再显示按钮 只有从前端才能这样做吗?(使用JS/jQuery) 您可以从客户端使用Cookies。请参阅如何操作中的。我不确定您是想在每次会话中显示一次,还是只向任何访问的用户显示一次(下次访问时不要再显示,即使是第二天) 如果只有一次,则可以在lo

我有一个带有博客的网站

无论何时输入,我都希望显示一个弹出div。 (这部分很简单-)

我想让它运行一次,可能是pare会话或IP,我会解释:

当用户打开博客页面时,2秒钟后,他将看到弹出窗口。然后他可以点击X按钮隐藏它,继续浏览博客,输入新页面,不再显示按钮


只有从前端才能这样做吗?(使用JS/jQuery)

您可以从客户端使用Cookies。请参阅如何操作中的。

我不确定您是想在每次会话中显示一次,还是只向任何访问的用户显示一次(下次访问时不要再显示,即使是第二天)

如果只有一次,则可以在
localStorage
中存储一个标志。如果每个会话一次,您可以在
sessionStorage
中存储一个标志。两者都是

下面是一个
localStorage
示例<代码>会话存储完全相同,只是您使用了
会话存储
而不是
本地存储

if (!localStorage.getItem("shown-popup")) {
    // We haven't shown it yet
    setTimeout(function() {
        // ----show the div here ----

        // Flag we've shown it (you might do this only when they click the [x])
        localStorage.setItem("shown-popup", "yes");
    }, 2000);
}
请注意,本地存储中的项是字符串

要允许少数没有本地存储或禁用本地存储(私人浏览等)的用户,请在
try/catch
中包装检查和设置:

var needToShowPopup = true;
try {
    needToShowPopup = !localStorage.getItem("shown-popup");
} catch (e) {
}
if (needToShowPopup) {
    // We haven't shown it yet
    setTimeout(function() {
        // ----show the div here ----

        // Flag we've shown it (you might do this only when they click the [x])
        try {
            localStorage.setItem("shown-popup", "yes");
        } catch (e) {
        }
    }, 2000);
}

您可以在localstorage/sessionstorage中设置一个标志,指出true或false。 如果是第一次,请检查:

if(localStorage.getItem('divAlreadyShown')=='true'){
//不要把DIV给我看
}否则{
//显示DIV并将“divAlreadyShown”标记为false,以便下次隐藏
setItem('divAlreadyShown','true');
}


注意:如果您想在每个浏览器会话中执行此活动,可以将localStorage更改为sessionStorage。

使用cookie来了解这是否是第一次访问纯客户端信息的cookie是一种反模式。@T.J.Crowder您能详细解释一下吗?cookie会随每个HTTP请求一起发送到服务器服务器。因此,将它们用于纯客户端信息会毫无目的地增加每个HTTP请求的开销;服务器不需要这些信息。这就是为什么web存储在很多很多年前被发明的部分原因。(它的API也比cookies好得多。)@T.J.Crowder谢谢你的解释。非常感谢你的朋友!