我使用jQuery Cookie插件(下载和演示以及带注释的源代码)来设置和读取cookie.我正在我的本地机器上开发页面.
以下代码将在FireFox 3,IE 7和Safari(PC)中成功设置cookie.但如果浏览器是谷歌浏览器并且该页面是本地文件,则它不起作用.
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
我所知道的:
该插件的演示适用于Chrome.
如果我将我的代码放在网络服务器上(地址以http://开头),它可以与Chrome配合使用.
因此,Cookie仅针对本地文件上的Google Chrome失败.
可能的原因:
Google Chrome不接受来自硬盘驱动器网页的Cookie(例如file:/// C:/websites/foo.html)
插件实现中的某些内容会导致Chrome拒绝此类Cookie
任何人都可以确认这一点并确定根本原因吗?
Chrome不支持本地文件的Cookie(或者像Peter Lyons所提到的,localhost*),除非您使用--enable-file-cookies标志启动它.您可以在http://code.google.com/p/chromium/issues/detail?id=535上阅读有关该讨论的讨论.
*如果您直接使用本地IP地址(127.0.0.1),Chrome 会支持Cookie.所以在localhost的情况下,这可能是一个更容易的解决方法.
对于本地应用程序,请在Chrome中使用localStorage:http: //people.w3.org/mike/localstorage.html
我有一些问题并解决了这个可怕的解决方案.一起使用商店和cookie插件.
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; //get cookies var helpFlag=(is_chrome)?$.Storage.get("helpFlag"):$.cookies.get("helpFlag"); //set cookies if(is_chrome)$.Storage.set("helpFlag", "1");else $.cookies.set("helpFlag", "1");
我知道这不是完美的解决方案,但对我有用