我有一个有博客的网站。
每当输入它时,我都希望显示一个弹出式div。(这部分很简单- 使用jQuery在5秒内显示一个div )
我想让它运行一次,也许是pare会话或IP,我会解释:
当用户打开博客页面时,2秒后他就会看到弹出窗口。然后,他可以点击X按钮隐藏它,继续浏览博客,输入新页面,不再显示按钮。
这有可能只从前端开始吗?(使用JS/jQuery)?
发布于 2016-04-12 00:34:07
我不确定您是想在每个会话中显示一次,还是只向任何访问的用户展示一次(即使是第二天,也不想在下次访问时再次显示)。
如果只有一次,那么您可以在localStorage
中存储一个标志。如果是每个会话一次,则可以在sessionStorage
中存储一个标志。两者都是支持得非常好。
下面是一个localStorage
示例;除了使用sessionStorage
而不是localStorage
之外,sessionStorage
完全相同
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);
}
发布于 2016-04-12 00:33:01
您可以从客户端使用Cookies。如何做到这一点,请参考如何使用jQuery设置/取消设置cookie?。
https://stackoverflow.com/questions/36567669
复制相似问题