在本地html文件中使用JavaScript设置Cookie

Setting Cookies using JavaScript in a local html file

本文关键字:JavaScript 设置 Cookie html 文件      更新时间:2023-09-26

我有以下目录树:

+ folder1
|--- folder2
|------ page1.html
|--- page2.html

如果我使用JavaScript在page1.html中设置了一些cookie,那么该cookie的路径是什么?

编辑:
让我更好地解释一下。我正在处理一个本地文件。通过CCD_ 3而不是通过使用HTTP服务器的客户端机器来访问CCD_。

只是澄清一下:
似乎有些浏览器(如Chrome)在使用file:///时不存储cookie,但Firefox和Internet Explorer都存储cookie。

document.cookie:的MDC页面

如果未指定,则[path参数]默认为当前文档位置的当前路径。

所以在你的情况下,它将是/folder1/folder2/


我最初没有看到你在问题标题中指定了"local"——不确定这是否在我写答案时更新了。使用file:///协议浏览时不会设置Cookie,具体取决于浏览器。

浏览器不为file:// url协议存储cookie,它将简单而安静地根本无法设置任何内容。因此,如果这是真正的"本地",而不是在一个域上,你可能会有问题。

如果你在mac上,你可以关闭Chrome并像这样重新启动:

/Applications/Google' Chrome.app/Contents/MacOS/Google' Chrome --enable-file-cookies

然后,您就可以在本地文件上设置cookie。

set-为chrome启用文件cookie,它应该对您有效。此外,你还必须设置一些功能"接受所有cookie"才能正常工作,但如果你这样做了,请确保在重新上线之前设置好。

对于那些仍在寻找方法的人,请尝试设置URL参数,而不是cookie

我下载了一些HTML格式的小说供离线阅读,无法使用cookie将之前设置的字体大小传递给下一章,所以我所做的如下所示:

  1. 首先添加一个寡妇事件侦听器,每当单击链接(到下一个ch)时,该侦听器都会添加字体大小参数
  2. 然后是window.onload函数,该函数获取参数值并更改字体大小

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <a href="ch-02.html" >Next Chapter</a>
    <p id="content">Hope this helps</p>
    
<script>
var fontSize = 1;
window.addEventListener("click", function(e) {
    var href = e.target.getAttribute("href");
    if(href) {
        location.href = href + "?fontSize=" + fontSize;
        e.preventDefault();
     }
})
window.onload = function(){
  var url = new URL(window.location.href);
  var value = url.searchParams.get("fontSize");
  if(value != null){
    fontSize = parseFloat(value);
    document.getElementById("content").style.fontSize = fontSize + "em";
  }
}
</script>
    
  </body>
</html>

作为一种变通方法,您可以使用Tampermonkey访问本地文件(如何在Tampermoney脚本中包含本地htm页面?)通过这种方式,您将使用Tampermonkey的存储,并能够通过函数GM_getValue(data)和GM_setValue(data)设置和获取数据。我把它用于我的本地HTML页面,我用它作为Windows Explorer 的可定制替代品