我通过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的问题,但是对于为什么会发生这种情况的任何意见都会受到赞赏。 谢谢, 威廉。
答案 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文件的数量。