2010-10-27 101 views
0

我有一些Jquery插件是通過我的Drupal Acquia Marina主題.info文件調用的。drupal,jquery插件和IE6/IE7

在IE6和IE7之外,它們在所有流行的瀏覽器中均可正常工作,但它們似乎根本無法加載。

一些插件是非常基本的,如下面的slideToggle,這就像所有的人,存在着如在.INFO腳本調用引用AA .js文件 -

$(document).ready(function() 
{ 
    //hide the all of the element with class msg_body 
    $(".collapse-content").hide(); 
    //toggle the componenet with class msg_body 
    $(".collapse-head").click(function() 
    { 
    $(this).next(".collapse-content").slideToggle(400); 
    }); 
}); 

另一種是更簡單 -

$(document).ready(function() 
{ 
$(".principal-input").hide(); 
} 
); 

其它與jstree嵌套列表工具,和的tablesorter溼陷性複選框/收音機樹兩種變型的稍微改編版本。

我不知道如何進一步解決問題 - 如果沒有螢火蟲類型的診斷工具,但我認爲這些腳本根本沒有加載,因爲沒有可見的行爲。

我在IE6或IE7中得到的唯一錯誤是

Line: 3 
Char: 3 
Error: Object doesn't support this property or method 
Code: 0 

我已經通過代碼慌亂,不要認爲這是可能的,所有的插件都從死亡的最後一個逗號(HTTP痛苦://stackoverflow.com/questions/2562736/jquery-ui-accordion-degrades-in-ie6-or-ie7-but-is-working-in-ie8)。

TinyMCE插件是一個例外,該插件仍然支持IE6和IE7。 鑑於TinyMCE代碼的密度和我的經驗不足,我無法弄清楚爲什麼TinyMCE不受影響。它以相同的方式從.info文件中調用。

這完全有可能與Drupal無關,並且僅僅是Jquery的一個問題,但是爲什麼會發生這種情況的任何意見將不勝感激。 謝謝, 威廉。

回答

1

使用IE8開發人員工具並在IE7模式下運行後,我能夠找出問題所在。

Tablesorter拋出一個錯誤,阻止我所有的其他插件在他們的軌道。

jquery.tablesorter.pager.js的第24行讀取

top: o.offset().top + o.height() + 'px', 

卸下結束逗號解決了這個問題。 Tablesorter(以及隨後加載的所有其他插件)現在可在IE6和IE7中運行。

0

我會嘗試去管理/設置/性能,並確保優化JavaScript文件已啓用。我的猜測是,IE限制了你調用的JS文件的數量。

+0

謝謝你的建議吉米。無情地優化JS會導致行爲中的一些奇怪的不規則行爲,這可能會對底層的JavaScript衝突產生強烈的影響,IE比其他瀏覽器要寬鬆一些。時間做一些偵探工作.. – bulkhead 2010-10-28 09:51:27