Почему ContentFlow не работает в Firefox, IE, когда я пытаюсь объединить его с jFlickrFeed? - PullRequest
0 голосов
/ 10 января 2012

Вот рабочий пример ContentFlow, использующий три статических изображения, жестко запрограммированных в HTML: http://dl.dropbox.com/u/27409695/WB-Browser/example.html

Он работает в FF, IE8, Safari и Chrome.

Я настроил эту страницунемного, чтобы заставить его тянуть в канал Flickr, используя jFlickrFeed.Он отлично работает в браузерах webkit (Safari, Chrome), но не работает в FF или IE.Ниже приведены конкретные ошибки.

http://dl.dropbox.com/u/27409695/WB-Browser/example-jflickrfeed.html

Вот обработчик document.ready, который я использую:

<script>
    jQuery(document).ready(function($) {
        $('.flow').jflickrfeed({
            limit: 3,
            qstrings: {
                id: '60829137@N05'
            },
            itemTemplate: 
                '<img class="item" src="{{image_b}}" />' 
        }, function() {
            var wbFlow = new ContentFlow('wbContainer', { 
                circularFlow:   false,
                startItem:      0
            });
        });
    });
</script>

Любая идея, почему это не такработает?

ОБНОВЛЕНИЕ : Просто хотел добавить информацию на случай, если это поможет кому-нибудь помочь мне.Firefox и IE, похоже, душат строку 1652 файла contentflow_src.js.Firefox выдает следующую ошибку, когда я пытаюсь переместить ползунок: «this.items [index] не определен»

IE говорит о строке 1652: «this.items [...]. Label» имеет значение nullили не объект "

Кроме того, IE жалуется на строку 1119:" this._activeItem.index 'является нулевым или не является объектом "

Но, опять же, Chrome и Safari невыдает любые ошибки и скрипты работают безупречно в этих двух браузерах.

1 Ответ

0 голосов
/ 17 января 2012

Я уже некоторое время работаю над этим и нахожу решение.

Как показано выше, я создавал новый объект CF в обратном вызове jFlickrFeed, но это не сработало.

Вместо этого я удалил тег CF из заголовка документа.И вместо создания нового объекта CF в обратном вызове я динамически загружаю весь скрипт ContentFlow:

function() {
    var script = document.createElement('script');
    script.setAttribute('src', 'contentflow.js');
    script.setAttribute('type', 'text/javascript');
    document.getElementsByTagName('head')[0].appendChild(script);
});

Посмотрите, как это работает здесь: http://dl.dropbox.com/u/27409695/WB-Browser/example2-jflickrfeed.html

Есть проблемы с этим подходом, хоть.С одной стороны, ContentFlow выполняет свою собственную динамическую загрузку (дополнения, таблицы стилей и т. Д.).Используя мой метод, описанный выше, некоторые из этих функций перестают работать (особенно в Internet Explorer), что требует внесения изменений в скрипт contentflow.js.

Если вам интересно узнать, как я изменил скрипт, посмотрите здесь: http://dl.dropbox.com/u/27409695/WB-Browser/contentflow_src_modified.js

...