簡體   English   中英

每天JavaScript提示一次

[英]JavaScript prompt once per day

嘿,我想做一個每天出現一次的JavaScript提示。

我的實際代碼是:

<script>
var pass; var pass1="mypassword";
password=prompt('Please enter your password to view this page!',' ');
if (password==pass1)
    alert('Password Correct! Click OK to enter!');
else
{
window.location="http://mywebsite.com";
}
</script>

使用此代碼,提示將在每次刷新時出現

您可以設置一天后過期的Cookie: https//www.w3schools.com/js/js_cookies.asp

這是修改您的代碼的示例:

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function isLoggedIn() {
    if(getCookie("isLoggedIn") === "true") {
        return true;
    } else {
        return false;
    }
}

var pass1 = "mypassword";

if(isLoggedIn() === false) {
      var password = prompt('Please enter your password to view this page!',' ');
    if(password === pass1) {
        alert('Password Correct! Click OK to enter!');
        setCookie("isLoggedIn", "true", 1);
    } else {
        window.location.reload;
    }
}

請注意,以這種方式存儲正確的密碼是不安全的,因為任何人都可以看到源代碼並查看正確的密碼,更安全的方式是做一些服務器端的工作,例如Nodejs應用程序。 同樣在此實現中,任何人都可以將isLoggedIn cookie設置為true並通過它獲取,一種更安全的方法是將一些令牌設置為服務器可以驗證以查看其是否過期的cookie,或者是否采用Nodejs路由,還有更多資源可以進行安全身份驗證

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM