Man*_*eld 9 javascript cookies jquery google-chrome jquery-ui
我有一个使用与Cookie插件的jQuery UI的标签控件(如演示了Web应用程序(ASP.NET MVC3)在这里).
创建选项卡时,我使用path选项设置cookie的路径:
$("#tabs").tabs({ cookie: { path: '/A/' } });
Run Code Online (Sandbox Code Playgroud)
在Firefox中,这可以正常工作.无论"/ A /"(例如"A/B/C")之后的网址是什么,标签控件始终会正确记住上次选择的标签,并在重新加载页面时切换到该标签.
但是,在Chrome(v21)上,浏览器偶尔会添加另一个带有不同路径的标签Cookie.然后我最后得到两个cookie,一个是我最初创建的路径"/ A /",另一个是路径"/ A/B /",这是我目前正在使用的URL.不幸的是,似乎这个"双cookie"导致错误的选项卡有时会在页面刷新时加载,因为这两个cookie似乎有冲突.
有没有办法防止Chrome中的这种行为?我已经尝试了几种编程解决方案(例如,如果路径包含"/ A /",则强制路径为"/ A /",但由于该代码永远不会到达,因此Chrome似乎自动执行此操作).
谢谢您的帮助!
似乎问题是chrome不区分不同路径上具有相同名称的cookie; 所以我在我的应用程序中的其他选项卡控件搞乱了.一旦我给了cookie一个独特的名字,事情就开始正常了!
我刚刚将一个示例推送到 GitHub 存储库。看起来它在 Linux 下的 Chrome 21 中运行良好。
如果您使用的是 jQuery UI >= 1.7,则将具有某些唯一值(如“my-absolutely-unique-cookie”)的属性“name”添加到您传递的 cookie 对象中,并查看其运行情况:
$("#tabs").tabs({
cookie: {
name: 'my-unique-cookie',
// store cookie for a day, without, it would be a session cookie
expires: 1,
path: '/tabs'
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1875 次 |
| 最近记录: |