我正在学习一个学生项目的cookie和JavaScript,并试图在学校项目中使用它们。但是,当我尝试实现一个书签文章的简单函数时,我偶然发现了一个问题。
这是我在文章中放置的代码。当我按下书签图标时,会触发下面的功能,创建一个在14天后过期的cookie。
<script>
function showBookmark() {
document.getElementById("bookmark").innerHTML = "bookmark";
var d = new Date();
d.setTime(d.getTime() + (14*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = "cookie1" + "=" + "Article 1 - Title Of Article 1" + ";" + expires + ";path=/";
};
</script>
这是我在页面中放置的代码,用于存储和显示用户所做的所有书签。代码扫描20个cookie(&#34; cookie1&#34;,&#34; cookie2&#34;到&#34; cookie20&#34;)然后显示有值的前10个cookie。然后使用innerHTML()将cookie显示在表中。
<script>
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);
} else {
return "false"
}
}
};
var counter=0;
for (var alpha=0; alpha<20; alpha++){
bookmark = getCookie("cookie"+alpha.toString());
if (counter > 10){
break;
}
if (bookmark != "false"){
document.getElementById("bookmark"+counter.toString()).innerHTML = bookmark;
counter++;
}
};
</script>
但是,由于某种原因,上面的代码没有显示预期的结果(即使按下图标并触发getCookie功能,文章的名称也不会显示在包含所有书签的页面上)。我的代码有问题吗?
(这是我提出的第一个问题,所以我们将非常感谢任何建议)