【问题标题】:jQuery Cookie Not Working in IE 8?jQuery Cookie 在 IE 8 中不起作用?
【发布时间】:2011-11-14 09:05:31
【问题描述】:

编辑: 我遇到了下面的 cookie 问题,所以我切换到 jQuery Cookie,但错误仍然存​​在,所以我在这里发布了 jQuery Cookie 代码,但留下了我的原问题完好无损:

在一个页面上我调用了 colorbox 并且该代码可以正常工作但在另一个页面上我更改了 cookie 名称和调用的函数并且它中断了,这是该代码:

var $j = jQuery.noConflict();
$j(window).load(function() {
//I have also tried - $j(document).ready(function(){ - 
///to see if that changed anything

if(!$j.cookie('homecookie')){
$j("#start").click(); 

//the click functions clicks a hidden link witch triggers a fancybox 
//lightbox to load - works properly in all but IE (have tested 8) in which
//the lightbox continues to load regardless of the cookie

$j.cookie("homecookie", 1, {expires: 30, path: '/'});
}
});

我怎样才能让它在 IE 8+ 中工作 - 页面加载时不会引发错误。这是参考页面:

This Page 应仅在首次访问时触发 Fancybox

注意:我已经在 FF、Chrome、Safari 和 Opera 中测试了上述 cookie/脚本,一切正常。


--------原始问题--------

我正在使用以下 cookie:

var $j = jQuery.noConflict();

$j(document).ready(function(){

   if (document.cookie.indexOf('visited=true') == -1) 
   {
      var thirtyDays = 1000*60*60*24*30;
      var expires = new Date((new Date()).valueOf() + thirtyDays);
      document.cookie = "visited=true;path=/;expires=" + expires.toUTCString();
      $j.colorbox({ inline:true, href:"#gallery-nav-instruct"});
   }

});

它适用于 FF 和 Chrome,但不适用于 IE 8。

设置中允许使用 Cookie。

有几个问题,在一个页面上,脚本不是由 IE (Colorbox) 在另一个页面上触发的,cookie 没有被重新配置,并且脚本不断被调用。两个脚本中唯一的变化是将$j.colorbox({ inline:true, href:"#gallery-nav-instruct"});更改为$j("#start").click();

【问题讨论】:

  • 哪个版本的 IE 失败了?
  • 已编辑问题以反映这一点,但我正在测试 8 个问题。我没有测试过其他版本。
  • 请问可以使用调试工具(F12)尝试7和9吗?
  • 如果您进入 Internet 选项 > 高级并取消选中“禁用脚本调试”(两者)并选中“显示有关每个脚本错误的通知”并重新运行该页面,是否有任何 javascript 错误?跨度>
  • 我在 XP 上,无法尝试 9(对吗?),IE 7 不会触发任一脚本并生成错误(与 cookie 无关,但与其他 JS 无关)IE 8 不会生成这些错误

标签: javascript jquery internet-explorer cookies jquery-cookie


【解决方案1】:

你能试试这个代码吗?效果更好吗?

https://developer.mozilla.org/en/DOM/document.cookie

【讨论】:

  • 你能举个例子吗 - 我知道足够多的 javascript 来伤害自己,那个页面让我很困惑。
  • 如果你复制上面的函数,样本在cmets下面。
【解决方案2】:

Fancybox 似乎是问题所在。我切换到颜色框并使用 jQuery Cookie,它在我遇到问题的页面上运行良好,但在另一个有点不同的页面上 created another issue

这是有效的代码:

var $j = jQuery.noConflict();
$j(window).load(function() {
if(!$j.cookie('homecookie')){
$j.colorbox({ inline:true, href:"#home-welcome"});
$j.cookie("homecookie", 1, {expires: 30});
}
});

【讨论】:

    猜你喜欢
    • 2012-03-09
    • 1970-01-01
    • 2015-08-16
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多