在本地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将之前设置的字体大小传递给下一章,因此我所做的如下所示:
希望这能有所帮助
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位。