如何基于html ID设置或获取多个JavaScript cookie?
我做了一个博客应用程序,里面有很多文章。我想为用户单击的文章设置cookie。这样用户就可以看到他/她访问或阅读了哪些文章。我没有在后端存储cookie。Cookie是根据文章id设置的。首先,欢迎使用StackOverflow 从您的问题中,您甚至可以利用如何基于html ID设置或获取多个JavaScript cookie?,javascript,cookies,web-site-project,Javascript,Cookies,Web Site Project,我做了一个博客应用程序,里面有很多文章。我想为用户单击的文章设置cookie。这样用户就可以看到他/她访问或阅读了哪些文章。我没有在后端存储cookie。Cookie是根据文章id设置的。首先,欢迎使用StackOverflow 从您的问题中,您甚至可以利用localStorage来解决这个问题?仅使用Cookies没有意义,但您需要做的只是: 对于每个页面重新加载,将该页面附加到数组中 如果要获取该值,请读取数组 随着时间的推移,你会想添加更多的东西 只存储最近访问的10个页面(这样你就
localStorage
来解决这个问题?仅使用Cookies没有意义,但您需要做的只是:
- 对于每个页面重新加载,将该页面附加到数组中
- 如果要获取该值,请读取数组
- 只存储最近访问的10个页面(这样你就不会有100个链接)
- 不要重复页面
window.localStorage.setItem(key,payload)
您可以读为var links=window.localStorage.getItem(key)
记住就像cookies一样,您需要保存为字符串,执行。setItem('links',{a:1})
将最终保存[Object Object]
如果您有以下情况:
var linksStorage={
关键字:“访问链接”,
获取:()=>{
var allLinks=window.localStorage.getItem(this.KEY)
返回JSON.parse(allLinks | |'[])//解析字符串或以空数组开头
},
保存页:()=>{
var allLinks=this.localStorage.get()//获取所有现有链接
allLinks.push({//追加此页面信息
id:window.location.query,
页面:window.location.pathname
})
window.localStorage.setItem(
this.KEY,JSON.stringify(allLinks))//保存回
}
}
然后是一个简单的例子:
window.linksStorage.savePage()
将当前页面附加到列表中,并且在需要阅读时:
window.linksStorage.get()
将列表作为数组对象提供给您
在评论后添加
var writeCookies=()=>{
var allCookies=window.document.cookie.split(“;”)//将它们全部拆分
文件。写(“”)
所有cookies.forEach(c=>{//对于每个cookie
var info=c.split('=')//名称和值
document.write(`- ${info[0]}->${info[1]}`)
})
文件。写(“
”)
}
并执行为
writeCookies()
我知道如何设置,但如何为用户访问的多个具有不同文章Id的文章获取多个cookie。cookies=Id=value。其中id是文章id。例如1=访问。4=访问7=访问。如何检索此Cookie并将其显示在文章下方为什么要使用多个Cookie?你为什么不在一块饼干里加上所有的东西呢?所以如果我读了20篇文章,我会有20块饼干?小心使用新的Cookie浏览器保护系统。。。正如我所写,您应该简单地将所有数据保存在一个cookie或localStorage itemOk 1 cookie文件中。我将其存储为article Id=value。示例1=已访问,30=已访问等。如何检索和分配。例第1条{访问过}第30条{访问过}那么你的问题与你在这个问题上的提问有所不同。。。但是使用我的代码,你可以得到一个链接数组,你所需要做的就是window.linksStorage.get().forEach(link=>{…})
并将你想要的方式写入DOM。你能显示get cookies代码吗。Foreach(cookies中的Id){document.wrte(Id)=message}