2012-09-13 22 views
0

工作我使用this plugin建立Cookiejquery.cookies不是在IE8

一切都运行良好,但在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?

回答

3

你正在包装一切准备功能,所以window.onload已经开除。更新您的代码如下:

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

没有,'ready'事件发生时,该文件被加载,而'load'事件发生时,也全部内容在文件中被加载。 'ready'事件通常发生在'load'事件之前,除了有时在IE中,因为jQuery必须模拟它。立即运行代码将使其在'load'事件之前运行。 – Guffa

0

ready事件通常是load事件之前发生,但如此的jQuery模拟它IE不具有ondomready事件。这意味着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}); 
    }); 

});