每个用户/浏览器会话只加载一次Javascript
Load Javascript only once per user / browser session
我有一个在页面加载时弹出的模态。。。
<script type="text/javascript">
jQuery(document).ready(function($) {
setTimeout(function() {
$.UIkit.modal('#newsletter-20').show();
}, 3000);
});
</script>
这一切都很好,但我需要它在每个用户/浏览器会话中只出现一次。。。由于我是一个傻瓜,即使在查看了这些信息后,我也不知道如何做到这一点>http://www.w3schools.com/js/js_cookies.asp
谢谢你的帮助!
确定用户会话是否处于活动状态需要服务器端代码。因此,使用cookie对您来说很可能是更简单的解决方案。
JSFIDDLE演示
$(document).ready(function() {
var cookieValue = $.cookie("user-session");
if (!cookieValue || !cookieValue.length) {
setTimeout(function() {
$.UIkit.modal('#newsletter-20').show();
$.cookie("user-session", "1");
}, 3000);
}
});
注意:要使$.cookie工作,您必须使用jQuery cookie插件。cdn链接是这样的-https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js
但这是可选的,如果你想要一种传统的javascript方式来获取和设置cookie,你也可以使用它。但是jquerycookie方式要简单得多
您研究过sessionStorage
吗?使用sessionStorage
,您可以在每个会话的本地存储一个简单的布尔标志,然后在显示模态对话框之前测试该标志的存在。
当浏览器关闭时,浏览器将清除sessionStorage
的内容,这意味着只有当访问者正在积极使用其浏览器时,或者直到您手动将数据更改回虚假值时,该值才会持久存在。
例如:
jQuery(document).ready(function($) {
setTimeout(function() {
if (!sessionStorage.previouslyVisited) {
$.UIkit.modal('#newsletter-20').show();
sessionStorage.previouslyVisited = true;
}
}
});
相关文章:
- 如何防止javascript一次打开过多的文件
- 使用 JavaScript 一次为一个元素设置多个属性
- Javascript一次str_replace很多
- 如何使用 javascript 一次显示此数组的字符串内容
- 使用 Javascript 一次下载多个图像
- 如何让 JavaScript 一次运行一个字符串
- Javascript 一次选择所有单选按钮
- 使用 JavaScript 一次又一次地在画布上编写文本
- 使用 javascript 一次循环播放 4 个以上的声音
- 使用javascript一次加载/取消隐藏一个图像
- Javascript一次选择一行
- 用javascript一次添加3个活动类
- Javascript一次对两种效果进行样式化
- 我如何上传一个文件(图像,视频,文档)使用PHP或Javascript一次上传
- Javascript一次点击两个函数
- Javascript一次填充不同的svg形状
- Javascript一次获取多个id
- 用于使用同一类的 JavaScript 一次悬停 3 个项目
- Javascript一次替换多个字符
- 请求javascript一次打开多个链接