如何使用JavaScript限制每个用户一个弹出窗口

如何使用JavaScript限制每个用户一个弹出窗口,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我在我的博客中找到了以下代码: <script type="text/javascript"> document.body.onclick= function(){ window.open('My site', 'poppage', 'toolbars=0, scrollbars=1, location=0, statusbars=0, menubars=0, resizable=1, width=950, height=650, left = 300, top = 50'); }

我在我的博客中找到了以下代码:

<script type="text/javascript">
document.body.onclick= function(){ window.open('My site', 'poppage', 'toolbars=0, scrollbars=1, location=0, statusbars=0, menubars=0, resizable=1, width=950, height=650, left = 300, top = 50'); }
</script>

document.body.onclick=function(){window.open('My site','poppage','toolbars=0,scrollbars=1,location=0,statusbar=0,menubars=0,resizeable=1,width=950,height=650,left=300,top=50');}
但是因为我对JS一无所知,所以我不能对它进行太多的编辑

document.body.onclick= function(){ window.open('My site', 'poppage', 'toolbars=0, scrollbars=1, location=0, statusbars=0, menubars=0, resizable=1, width=950, height=650, left = 300, top = 50');document.body.onclick=function(){} }

单击onclick属性一次后重置该属性,在弹出窗口显示之前检查
localStorage
项目,并在显示该项目时设置
localStorage
项目。由于这在SO沙箱中不起作用,这里有一个代码笔

document.body.onclick=function(){
如果(!localStorage.popup){
localStorage.popup=1;
打开窗户(
“我的网站”,
“罂粟”,
工具栏=0,滚动条=1,位置=0,状态栏=0,菜单栏=0,可调整大小=1,宽度=950,高度=650,左侧=300,顶部=50
);
}
};
正文{
最小高度:100vh;
}
使用cookies


在Chrome上,我只能打开一个弹出窗口。您的目标浏览器是什么?或者遇到了什么问题?OP还询问了jquery。如果你想限制每页点击次数,我建议你使用一个函数。重新加载时将再次可用。附言:更具可读性和记忆性的是使用:
!localStorage.popup
localStorage.popup=1@daremachine OP没有请求jquery。他们说“使用Javascript”,并在帖子中标记了JS和jquery。假设这只是为用户显示一次弹出窗口,而不考虑会话或他们是否关闭浏览器或其他内容,
$.one()
是完全不同的事情。只需单击一次即可。@RokoC.Buljan neat!我不知道你可以使用
localStorage.itemname
,谢谢!对不起,我只想给你更多的想法。我错过了讨论中的“会话”部分,我认为标签是用于章节规范的。我的坏。聪明,但是,在页面刷新/历史记录/导航中,你会再次看到恼人的弹出窗口。很好。您可以创建一个cookie来存储是否出现弹出窗口,并且仅在cookie不存在时显示弹出窗口。
document.body.onclick = function() {
    isPopup = document.cookie.replace(/(?:(?:^|.*;\s*)popup\s*\=\s*([^;]*).*$)|^.*$/, "$1") || false;
    if (!isPopup) {
        window.open('My site', 'poppage', 'toolbars=0, scrollbars=1, location=0, statusbars=0, menubars=0, resizable=1, width=950, height=650, left = 300, top = 50');
    document.cookie = "popup=true";
    }
}