drupal,Jquery插件和IE6 / IE7

时间:2010-10-27 14:30:49

标签: jquery drupal internet-explorer-7 internet-explorer-6

我通过Drupal Acquia Marina主题.info文件调用了许多Jquery插件。

它们在所有流行的浏览器中都能正常工作,但IE6和IE7除外,它们似乎根本没有加载。

有些插件非常基本,就像下面的slidetoggle一样,它们都是.info脚本调用中引用的.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和两个变体。

我不知道如何在没有firebug类型的诊断工具的情况下进一步解决问题,但我假设这些脚本根本没有加载,因为没有可见的行为。

我在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-在-IE6 - 或 - IE7 - 丁是-工作功能于IE8)。

一个例外是TinyMCE插件,它仍然可以与IE6和IE7一起使用。 鉴于TinyMCE代码的密度和我缺乏经验,我无法弄清楚为什么TinyMCE不受影响。它以相同的方式从.info文件中调用。

这完全有可能与Drupal没什么关系,并且仅仅是Jquery的问题,但是对于为什么会发生这种情况的任何意见都会受到赞赏。 谢谢, 威廉。

2 个答案:

答案 0 :(得分:1)

使用IE8开发人员工具并在IE7模式下运行后,我能够找出问题所在。

Tablesorter抛出了一个错误,阻止了我的所有其他插件。

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

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

删除结尾逗号可以解决问题。 Tablesorter(以及之后加载的所有其他插件)现在在IE6和IE7中运行。

答案 1 :(得分:0)

我会尝试使用admin / settings / performance并确保启用Optimize Javascript Files。我的猜测是IE限制了你调用的JS文件的数量。