Drupal jQuery не будет загружаться в IE, используя $ (document) .ready () - PullRequest
1 голос
/ 10 августа 2009

Это мой первый скрипт 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-канал, содержащий путь к случайному изображению в описании элемента, используется для установки фона страницы div #. RSS-канал генерируется модулем cck и views. Это потребовало некоторой дополнительной настройки шаблона, но это работает.

Все выглядит отлично, кроме как с IE. Я пытался использовать Microsoft Script Debugger, но это не очень полезно (или я не знаю, как его использовать). Существует одна ошибка времени выполнения, которая может быть связана с кодом Google Analytics (он появился только недавно):

Сведения об ошибке веб-страницы

Пользовательский агент: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Медиа Центр ПК 6.0; Планшетный ПК 2.0) Метка времени: вс, 9 августа 2009 19:58:39 UTC

Сообщение: «а» является нулем или не является объектом Строка: 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 голосов
/ 10 августа 2009

Какую версию jQuery вы используете. Возможно, у вас несовместимость версий с внешним сценарием, который вы используете (я вижу, что это упакованная версия, которая говорит мне, что она довольно старая), и если вы используете jQuery 1.3.2.

Не могли бы вы объяснить версии и дать URL-адрес используемых плагинов.

Если вы можете перевести страницу в оперативный режим и использовать полные версии сценариев, гораздо проще отлаживать и обнаруживать проблемы. Упакованный скрипт невозможно отладить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...