jquery.cookies在IE8中无效

时间:2012-09-13 18:50:18

标签: jquery internet-explorer cookies jquery-cookie

我正在使用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?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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});
  });

});