我一直在编写一个脚本,只显示一次警告框(使用cookie)。以下是我到目前为止的情况:
<script type="text/javascript">
function cookie(){
var x = document.cookie;
if (x = "") {
alert("Welcome to Steampunk Inc!");
document.cookie = 'iwashere=iwashere; expires=Fri, 31-Dec-9999 23:59:59 GMT;';
} else if (x = "iwashere=iwashere") {
console.log("You came back!");
}
}
cookie();
</script>
我将此作为我的html文件正文中的第一件事。代码位于我的网站here的索引页面上。
答案 0 :(得分:1)
主要问题是你使用=运算符if。 =运算符为变量赋值。相反,你应该使用==运算符进行比较。
此外,document.cookie将返回您为网站存储的所有Cookie。您应该使用一些函数来获取/设置特定的cookie
以下是示例代码:
<script type="text/javascript">
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
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;
}
function cookie(){
var x = getCookie("iwashere");
if (x == "" || x == null) {
alert("Welcome to Steampunk Inc!");
setCookie("iwashere", "iwashere", 365);
} else if (x == "iwashere") {
console.log("You came back!");
}
}
cookie();
</script>