Это мой первый скрипт 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?