2012-09-13 21 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}); 
    }); 

});