Fancybox возвращает: «Запрошенный контент не может быть загружен. Пожалуйста, повторите попытку позже». - PullRequest
7 голосов
/ 09 февраля 2011

Использование Fancybox * от 1002 * до для воспроизведения видео на YouTube в модальном окне .

Моя проблема в том, что я продолжаю получать "Запрошенный контент не может быть загружен. Пожалуйста, повторите попытку позже."

Появляется модальное окно, поэтому я знаю, что скрипт работает, это может быть проблема с моим вызовом API ... вот мой вызов:

<script type="text/javascript">
$(document).ready(function() {

            /* This is basic - uses default settings */

            $("a.fancybox").fancybox({
                'hideOnContentClick': true
            });

            /* This is a non-obtrustive method for youtube videos*/

            $("a[rel=fancyvideo]").fancybox({
                overlayShow: true,
                frameWidth:640,
                frameHeight:360,
            });
        });
</script>

Ответы [ 4 ]

7 голосов
/ 09 февраля 2011

Есть ли у вас <a> с обоими class="fancybox" и rel="fancyvideo"?Если вы это сделаете, вы будете привязывать Fancybox к этим элементам дважды, и Fancybox может не понравиться.Попробуйте убрать это:

$("a.fancybox").fancybox({
    'hideOnContentClick': true
});

и посмотрите, что произойдет с только вторым на месте.

ОБНОВЛЕНИЕ : Странно.Демонстрация (http://chadly.net/demos/video-lightbox.html) создает другой HTML-код, чем ваша страница, демо-версия создает <object data=...>, а ваша - <object><embed src="youtube-url">. Вы говорите:

type: 'swf'

в привязке Fancybox, этооткуда взялся материал <object><embed>...</embed></object>. Однако href указывает на простую старую HTML-страницу просмотра видео YouTube, и этот href заканчивается как атрибут src для <embed>. URL для встраивания YouTubeвидео не совпадает с HTML-страницей видео, и это, вероятно, источник вашей проблемы.

Попробуйте заменить href, который выглядит следующим образом:

http://www.youtube.com/watch?v=QmVvgSfdmJQ

, на такой:

http://www.youtube.com/embed/QmVvgSfdmJQ

Первая - это обычная HTML-страница для YouTube, вторая - встраиваемый SWF.

ОБНОВЛЕНИЕ 2 : Пример, с которым вы работаете:для Fancybox 1.0.0, но вы используете 1.3.4, 1.0.0 имеет некоторые специальные проверки для YouTube, которых нет в более поздних версиях:

//...
} else if (url.match(/youtube\.com\/watch/i)) {
//...

Это от 1.0.0 и код послеelse if переписывает URL-адрес HTML-страницы (например, http://www.youtube.com/watch?v=QmVvgSfdmJQ) на более раннюю версиюURL-адрес SWF (например, http://www.youtube.com/v/QmVvgSfdmJQ).Эта проблема с версией также объясняет, почему демо-версия производила другой HTML, чем ваш.

Итак, у вас есть некоторые проблемы с версией поверх всего остального.

2 голосов
/ 11 апреля 2012

Убедитесь, что вы включили jquery.fancybox-media.js

<script type="text/javascript" src="jquery.fancybox-media.js?v=1.0.0"></script>
1 голос
/ 21 февраля 2012

используйте этот образец, не забудьте href

<a class="fancybox" href="your path for image or other">
  <img src="imagepath">
</a>
1 голос
/ 09 февраля 2011

Похоже, ваш код немного не в порядке

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