Drupal jQuery不会使用$(document).ready()在IE中加载

时间:2009-08-09 20:13:25

标签: jquery internet-explorer drupal

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

我使用主题的.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 feed用于设置div #page的背景。 rss feed由cck和views模块生成。这需要一些额外的模板自定义,但它可以工作。

除了IE之外,一切看起来都很棒。我尝试过使用Microsoft Script Debugger,但它不是很有帮助(或者我不知道如何使用它)。有一个运行时错误,看起来可能与谷歌分析代码有关(这只是最近才开始出现):

  

网页错误详情

     

用户代理:Mozilla / 4.0(兼容;   MSIE 8.0; Windows NT 6.1;三叉戟/ 4.0;   SLCC2; .NET CLR 2.0.50727; .NET CLR   3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0;平板电脑2.0)   时间戳:太阳,2009年8月9日19:58:39   UTC

     

消息:'a'为null或不是对象   行:1个字符:1代码:0 URI:   http://webdev/sites/default/files/js/js_77589ce906350e35d2f4994348346ad7.js

但除此之外,当我查看调试器时,我看到我打算运行的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);

我已经证实在IE8和IE6中已经破解了。你们任何人都可以帮我理解这里有什么问题吗?我仍然担心在没有启用javascript的浏览器中会发生什么,但我认为如果它甚至不能在IE中运行,这是一个没有实际意义的点。

我似乎想出了一个非常黑客攻击的解决方案,以获得随机背景图像的效果。我最初只是在线显示图像,但它需要比页面宽,而不创建滚动条。这个javascript疯狂有没有其他选择?

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的jQuery。您可能与正在使用的外部脚本具有版本不兼容性(我看到它是一个打包版本,告诉我它已经很老了)并且如果您运行的是jQuery 1.3.2。

您能否解释一下这些版本,并将网址提供给您正在使用的插件。

如果您可以将页面放在网上并使用完整版本的脚本,则可以更轻松地进行调试和发现问题。打包的脚本无法调试。