弹出窗口我想在Javascript中出现一次
我正在制作一个静态网站(没有服务器端),我只能使用HTML、CSS和一些脚本 我用JS制作了这个弹出式脚本,每个页面都包含了这个脚本:弹出窗口我想在Javascript中出现一次,javascript,html,css,popup,Javascript,Html,Css,Popup,我正在制作一个静态网站(没有服务器端),我只能使用HTML、CSS和一些脚本 我用JS制作了这个弹出式脚本,每个页面都包含了这个脚本: b=false; if(!b) { window.accept(); } function accept() { var r = confirm('By clicking you are ready to accept condition'); if (r == true)
b=false;
if(!b)
{
window.accept();
}
function accept()
{
var r = confirm('By clicking you are ready to accept condition');
if (r == true)
{
x = "You pressed OK!";
b=true;
}
else
{
window.location = "http://google.com";
}
document.getElementById("demo").innerHTML = x;
}
我希望这个弹出窗口只出现一次,因此我声明了一个布尔变量,一旦用户单击OK,它就会取相反的值。
它不工作,弹出窗口仍然显示。我建议您使用cookies检查警报消息是否已经出现过一次。您可以在此链接上查看如何使用它的更多详细信息:
我建议本地存储优于cookies。许多人由于脆弱性问题而禁用了cookie。如果您担心人们使用关闭了本地/会话存储的浏览器,您可以使用类似Modernizer的工具来检测这种情况,并提供一个后退选项 On Page load(使用checkState作为保存此信息的存储变量): 单击“接受”按钮时:
不,本地存储比会话存储持续时间长,因此我倾向于更频繁地使用会话存储。但这两种类型都允许您在不同页面加载期间保留接受记录,并且不依赖于使用cookie的服务器/网络开销。此外-为完整起见,本地和会话存储本身并不安全,不应用于存储敏感信息,如密码等。您的意思是它仍然显示?你的意思是当你刷新页面时,它会再次出现?b是全局变量吗?如果你在另一个函数中这样做,那么你最好使用window.b!或者当我加载另一个包含脚本的页面时。这和“某些”网站一样,要求用户在进入网站时接受条件,但我认为我应该选择cookies,投票,好答案!您可以使用本地存储而不是coockiePerfect!不过我用了sessionStorage,没问题。
var checkState= localStorage.getItem('checkState');
if(checkState=="true"){
//code for accepted conditions}else
{//code for not accepted condition};
localStorage.setItem('checkState','true');