javascript cookie不';不设置过期日期

javascript cookie不';不设置过期日期,javascript,cookies,Javascript,Cookies,我使用JavaScript中的cookie来记住地图上的最后一个位置,但我刚刚意识到,即使我添加了cookie,cookie也会错过过期日期 在这里您可以测试代码 在我的代码中,由于某种原因,唯一接受过期日期(如果我检查cookie,它实际上是存在的)的是Opera,其他浏览器似乎错过了过期日期,或者说在会话(FF)时过期 我怎样才能使这个代码工作 如果我使用decodeURIComponent(document.cookie);是的,我有cookie exp日期,但如果我在开发工具中进入应用

我使用JavaScript中的cookie来记住地图上的最后一个位置,但我刚刚意识到,即使我添加了cookie,cookie也会错过过期日期

在这里您可以测试代码

在我的代码中,由于某种原因,唯一接受过期日期(如果我检查cookie,它实际上是存在的)的是Opera,其他浏览器似乎错过了过期日期,或者说在会话(FF)时过期

我怎样才能使这个代码工作


如果我使用decodeURIComponent(document.cookie);是的,我有cookie exp日期,但如果我在开发工具中进入应用程序,我不需要检查是否设置了,老实说,只需关闭浏览器并在同一链接中重新打开它,地图不在同一位置,它只在会话中工作。

只是永远不要设置自己的cookie。使用经过测试的库,例如-您的内容会破坏cookie

<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>

在chrome中,我得到了你的丑陋饼干,带有
%23508000%23182700%232.8,expires=Thu,2019年5月23日13:10:14 GMT path=/
我强烈建议您不要将location.href作为cookie名称的一部分,因为我需要此cookie我需要名称中的href,因为客户有两个站点
/main.html
/consult/main.html
或更多,所以我想记住每个地图上的最后位置。除此之外,我在我的Chrome上看不到日期,在FF上也看不到日期,如果我关闭浏览器并重新打开页面,它在IE中也不起作用。如果我使用decodeURIComponent(document.cookie),那么唯一的一个是Opera.update;是的,我有cookie exp日期,但如果我在dev toolsAh中转到
应用程序
,则没有cookie exp日期,我明白你的意思了在出版的时候我不知道如果它通过javascript被问到,它实际上是被设置的我只是在测试它关闭浏览器并再次打开它,但不起作用我会尝试一下,然后接受答案:)你说内容破坏了cookie,但为什么在Opera中会起作用?有时我讨厌交叉浏览器问题。格式良好的cookie没有交叉浏览器问题
<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
let cookieName = location.href.split("/").slice(-2); 
cookieName.pop(); // get rid of file name
const curZ = mapView.getView().getResolution()
const mapCen = mapView.getView().getCenter()
let cookieStr = `#${mapCen[0]}#${mapCen[1]}#${curZ}`
Cookies.set("traffweb"+cookieName, cookieStr , { expires: 7, path: '/' });