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

在本地html文件中使用JavaScript设置cookie,javascript,cookies,cross-browser,local-files,Javascript,Cookies,Cross Browser,Local Files,我有以下目录树: + folder1 |--- folder2 |------ page1.html |--- page2.html 如果我使用JavaScript在page1.html中设置一些cookie,该cookie的路径是什么 编辑: 让我解释清楚。我正在处理一个本地文件page1.html通过/home/user/../folder1/folder2/page1.html访问,而不是通过使用HTTP服务器的客户端计算机访问 只是澄清一下: 似乎有些浏览器(如Chrome)在使用文件

我有以下目录树:

+ folder1
|--- folder2
|------ page1.html
|--- page2.html
如果我使用JavaScript在
page1.html
中设置一些cookie,该cookie的路径是什么

编辑:
让我解释清楚。我正在处理一个本地文件
page1.html
通过
/home/user/../folder1/folder2/page1.html
访问,而不是通过使用HTTP服务器的客户端计算机访问

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

来自:

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

因此,在您的情况下,它将是
/folder1/folder2/



我最初并没有看到您在问题标题中指定了“local”——不确定在我写答案时是否更新了它。根据浏览器的不同,使用
文件://
协议浏览时不会设置Cookie。

浏览器不会为
文件://
url协议存储Cookie,它将简单且无声地无法设置任何内容。因此,如果这是真正的“本地”且不在某个域上,您可能会遇到问题。

设置--为chrome启用文件cookie,它应该适合您。此外,您还必须设置一些功能“接受所有Cookie”才能正常工作,但如果设置了这些功能,请确保在重新联机之前先进行设置。

如果您使用的是mac电脑,则可以关闭Chrome并重新启动,如下所示:

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

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

作为解决方法,您可以使用Tampermonkey访问本地文件()
通过这种方式,您将使用Tampermonkey的存储,并能够通过函数GM_getValue(数据)和GM_setValue(数据)设置和获取数据。我将其用于我的本地HTML页面,我将其用作Windows资源管理器的可自定义替代方案

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

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

  • 首先添加一个widow事件侦听器,该侦听器在单击链接(到下一个ch)时添加字体大小参数
  • 然后是window.onload函数,该函数接受参数值并更改字体大小
  • 
    

    希望这能有所帮助

    var-fontSize=1; window.addEventListener(“单击”,函数(e){ var href=e.target.getAttribute(“href”); 如果(href){ location.href=href+“?fontSize=“+fontSize; e、 预防默认值(); } }) window.onload=函数(){ var url=新url(window.location.href); var value=url.searchParams.get(“fontSize”); if(值!=null){ fontSize=parseFloat(值); document.getElementById(“内容”).style.fontSize=fontSize+em; } }
    Cookie它独立于创建它的页面,“路径”仅由网站域组成。(假设您指的是浏览器cookie列表中显示的cookie名称)请参见我的编辑。我不知道为什么我投了反对票(
    ):(
    对不起,我以为你没有检查一些基本信息-忽略。有人知道这个“功能”已添加到Firefox 57中?我正在尝试调试一个问题——我的本地脚本在57年前一直在FF中工作,现在它似乎丢失了cookie。FF已变成无本地cookie默认值是我的假设之一。但是,几乎不可能进行web搜索;您所得到的只是关于如何启用/禁用cookie或关于附加cook的噪音ie经理。这个问题是我遇到的最接近的问题。似乎不再可用,似乎是这样。我正在
    page1.html
    中设置cookie,然后关闭浏览器,再次打开页面(当然是本地)然后我要了那个cookie,它还在那里:?@Oscar我认为这是一个跨浏览器的东西。Chrome对同源策略的解释与Firefox或Internet Explorer略有不同,特别是在
    文件://
    协议方面。在我的例子中,它在Firefox 77中工作,在Chrome 83.B中不工作Ubuntu上的oth20@Oscar看看我的,比你的大约20像素!是的,这似乎就是问题所在。IE和Firefox确实使用
    文件设置cookies://
    ,但Chrome没有这样做:)无论如何,我认为你的答案对IE和Firefox是正确的。+1:这很有效。用于终端。我必须删除“--enable file cookies”标志上的第二个破折号,因此它应该看起来像:
    open/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome-启用文件cookies
    如何设置
    --启用文件cookies
    它在
    的某些地方chrome://flags
    ??@Mostafa,我认为他的意思是运行
    chrome——启用文件cookies
    。但它不适合我在Windows7SP2上使用ChromeV81.0.4044.138 64位。