Drupal jQuery赢得';t使用$(document.ready()加载IE

Drupal jQuery赢得';t使用$(document.ready()加载IE,jquery,internet-explorer,drupal,Jquery,Internet Explorer,Drupal,这是我的第一个jQuery脚本,它在Firefox和Chrome中运行良好,但在InternetExplorer中失败 我使用主题的.info文件加载两个脚本: scripts[] = jquery.jfeed.pack.js scripts[] = script.js 第一个脚本是一个jquery插件,它为我解析rss提要。第二个脚本如下所示: var init = jQuery.getFeed({ url: 'panorama.xml', success: fun

这是我的第一个jQuery脚本,它在Firefox和Chrome中运行良好,但在InternetExplorer中失败

我使用主题的.info文件加载两个脚本:

scripts[] = jquery.jfeed.pack.js
scripts[] = script.js
第一个脚本是一个jquery插件,它为我解析rss提要。第二个脚本如下所示:

var init = jQuery.getFeed({
    url: 'panorama.xml',
    success: 
    function(feed)
    {
      var image = feed.items[0].description;
      $('#page').css('background-attachment', 'fixed');
      $('#page').css('background-image','url('+image+')');
      $('#page').css('background-position', 'center 63px');
      $('#page').css('background-repeat', 'no-repeat');
    }
});

$(document).ready(init);
其效果是,使用包含项目描述中随机图像路径的rss提要设置div#页面的背景。rss提要由cck和views模块生成。这需要一些额外的模板定制,但它可以工作

除了IE之外,一切看起来都很棒。我已经尝试过使用Microsoft脚本调试器,但它没有多大帮助(或者我不知道如何使用它)。有一个运行时错误看起来可能与google analytics代码有关(这是最近才出现的):

网页错误详细信息

用户代理:Mozilla/4.0(兼容; MSIE8.0;WindowsNT6.1;Trident/4.0; SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;Tablet PC 2.0) 时间戳:Sun,2009年8月9日19:58:39 UTC

消息:“a”为空或不是对象 行:1字符:1代码:0 URI:

但除此之外,当我查看调试器时,我看到我打算运行的jQuery代码被注释掉了:

;eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+
<-- snip -->
;  var init = jQuery.getFeed({
      url: 'panorama.xml',
      success: 
      function(feed)
      {
        var image = feed.items[0].description;
        $('#page').css('background-attachment', 'fixed');
        $('#page').css('background-image','url('+image+')');
        $('#page').css('background-position', 'center 63px');
        $('#page').css('background-repeat', 'no-repeat');
      }
  });

$(document).ready(init);

;eval(function(p,a,c,k,e,d){e=function(c){return(c您使用的jQuery版本是什么。您可能与您使用的外部脚本版本不兼容(我看到它是一个打包版本,对我来说它很旧),如果您正在运行jquery1.3.2

你能解释一下版本并给出你正在使用的插件的url吗


如果您可以将页面联机并使用完整版本的脚本,那么调试和发现问题就容易多了。打包的脚本不可能调试。

我已经设置了端口转发到我的开发框,它将暂时打开。您可以在这里看到:我使用的是drupal 6.13,它与jQuery 1.2.6一起提供,我相信这里是jFeed的url:希望这有帮助!您添加了一个doc ready语句来调用init。当在ie init中解析该语句时,它是未定义的。您看到的错误是jQuery试图调用doc ready事件,但它无法调用。call(未定义)请参阅下面的屏幕抓图。您可以看到init未定义在getFeed脚本解析之前设置init变量,因此init为nothing。请尝试将getFeed脚本放入此文件中,或使用setTimeout确保在设置变量之前下载它。将jquery.jfeed.pack.js的内容放在前面的第一行“init=Jquery.getFeed"。它仍在突破。请参阅我答案下面的注释-发现了issueredsquare最终帮助我发现问题在于为xml提要设置的内容类型。它被设置为application/rss+xml,但IE不会解析提要,除非它是text/xml。drupal代码中的覆盖修复了这一问题,但我最终以aba结束使用这种显示图像的方式。相反,我为带有图像的视图制作了模板,以便它只输出图像的路径,而不在页面上包含任何标记。