0

我正在使用这个插件来建立一个 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 中工作?

4

2 回答 2

3

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

    jQuery(function() {
          if (jQuery.cookie('shownDialog') != 'true') {
            jQuery('#lightbox-22556401244951').trigger("click"); 
          }
            jQuery.cookie('shownDialog', 'true', {expires: 7});
    });
于 2012-09-13T18:55:13.567 回答
0

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

使用该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});
  });

});
于 2012-09-13T19:24:43.650 回答