我有以下目录树:
+ 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将之前设置的字体大小传递给下一章,所以我所做的如下所示:
- 首先添加一个寡妇事件侦听器,每当单击链接(到下一个ch)时,该侦听器都会添加字体大小参数
- 然后是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 的可定制替代品