2010-10-27 67 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