我制作一个静态网站(没有服务器端),我只能使用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)
{
x = "You pressed OK!";
b=true;
}
else
{
window.location = "http://google.com";
}
document.getElementById("demo").innerHTML = x;
}
我希望弹出窗口只出现一次,因此我声明了一个布尔变量,一旦用户单击OK,它就会取相反的值。 它不起作用,弹出窗口仍然出现。
答案 0 :(得分:2)
我建议您使用Cookie来检查警报消息是否已经出现过一次。您可以在此链接上查看有关如何使用它的更多详细信息: http://www.w3schools.com/js/js_cookies.asp
答案 1 :(得分:1)
我建议通过cookie进行本地存储。由于漏洞问题,很多人都禁用了cookie。如果您对使用已关闭本地/会话存储的浏览器的人感到担忧 - 您可以使用类似Modernizr的内容来检测并具有后备选项。
onpage load(使用checkState作为保存此信息的存储变量):
var checkState= localStorage.getItem('checkState');
if(checkState=="true"){
//code for accepted conditions}else
{//code for not accepted condition};
点击“接受”按钮:
localStorage.setItem('checkState','true');
Noe,本地存储的持续时间比会话存储时间长,所以我倾向于更频繁地使用会话存储。但是这两种类型都允许您在不同页面加载期间保持接受记录,并且不依赖于使用cookie的服务器/网络开销。此外 - 为了完整起见,本地和会话存储本身并不安全,不应用于存储密码等敏感信息。