如何基于html ID设置或获取多个JavaScript cookie?

如何基于html ID设置或获取多个JavaScript cookie?,javascript,cookies,web-site-project,Javascript,Cookies,Web Site Project,我做了一个博客应用程序,里面有很多文章。我想为用户单击的文章设置cookie。这样用户就可以看到他/她访问或阅读了哪些文章。我没有在后端存储cookie。Cookie是根据文章id设置的。首先,欢迎使用StackOverflow 从您的问题中,您甚至可以利用localStorage来解决这个问题?仅使用Cookies没有意义,但您需要做的只是: 对于每个页面重新加载,将该页面附加到数组中 如果要获取该值,请读取数组 随着时间的推移,你会想添加更多的东西 只存储最近访问的10个页面(这样你就

我做了一个博客应用程序,里面有很多文章。我想为用户单击的文章设置cookie。这样用户就可以看到他/她访问或阅读了哪些文章。我没有在后端存储cookie。Cookie是根据文章id设置的。首先,欢迎使用StackOverflow

从您的问题中,您甚至可以利用
localStorage
来解决这个问题?仅使用Cookies没有意义,但您需要做的只是:

  • 对于每个页面重新加载,将该页面附加到数组中
  • 如果要获取该值,请读取数组
随着时间的推移,你会想添加更多的东西

  • 只存储最近访问的10个页面(这样你就不会有100个链接)
  • 不要重复页面
添加到比cookies要简单一些,因为您只需执行
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}