【问题标题】:jquery.cookies not working in IE8jquery.cookies 在 IE8 中不起作用
【发布时间】:2012-09-14 03:24:43
【问题描述】:

我正在使用this plugin建立一个cookie

一切正常,但在 IE7 和 IE8 中

这是我的 JS 代码:

jQuery(document).ready(function() {

    jQuery(function() {
          if (jQuery.cookie('shownDialog') != 'true') {
            window.onload = document.getElementById('lightbox-22556401244951').click(); 
          }
            jQuery.cookie('shownDialog', 'true', {expires: 7});
    });

});

不知道为什么它不能只在 IE7 和 IE8 中工作?

【问题讨论】:

    标签: jquery internet-explorer cookies jquery-cookie


    【解决方案1】:

    您将所有内容都包装在 ready 函数中,因此 window.onload 已经触发。将您的代码更新为:

        jQuery(function() {
              if (jQuery.cookie('shownDialog') != 'true') {
                jQuery('#lightbox-22556401244951').trigger("click"); 
              }
                jQuery.cookie('shownDialog', 'true', {expires: 7});
        });
    

    【讨论】:

    • 不,ready 事件在文档被加载时发生,load 事件在文档中的所有内容也被加载时发生。 ready 事件通常发生在load 事件之前,但有时在 IE 中除外,因为 jQuery 必须模拟它。立即运行代码将使其在load 事件之前运行。
    【解决方案2】:

    ready 事件通常发生在load 事件之前,但 IE 没有ondomready 事件,因此 jQuery 会模拟它。这意味着ready 事件有时会在 IE 中的load 事件之后发生。

    使用load 方法绑定事件,它会一直触发。如果load 事件已经触发,jQuery 将直接调用事件处理程序:

    jQuery(document).ready(function() {
    
      jQuery(function() {
          if (jQuery.cookie('shownDialog') != 'true') {
            jQuery(window).load(function() {
              document.getElementById('lightbox-22556401244951').click();
            });
          }
            jQuery.cookie('shownDialog', 'true', {expires: 7});
      });
    
    });
    

    【讨论】:

      猜你喜欢
      • 2015-12-19
      • 2012-05-23
      • 2015-06-07
      • 2013-05-07
      • 2012-05-12
      • 2012-04-03
      • 1970-01-01
      • 2013-05-03
      • 2011-01-17
      相关资源
      最近更新 更多