Fancybox回归”无法加载请求的内容。请稍后再试。”

发布于 2024-10-16 19:46:52 字数 757 浏览 4 评论 0原文

使用 Fancybox在模式框中播放 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>

Using Fancybox to play youtube videos in a modal box.

My Problem is that I keep getting "The requested content cannot be loaded. Please try again later."

The modal box is popping up so I know the script is running, it might be a problem with my API call... here is my call:

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

娇妻 2024-10-23 19:46:52

您是否有同时包含 class="fancybox"rel="fancyvideo"?如果这样做,那么您将两次将 Fancybox 绑定到这些元素,而 Fancybox 可能不喜欢这样。尝试取出这个:

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

然后看看仅使用第二个会发生什么。

更新:奇怪。该演示 (http://chadly.net/demos/video-lightbox.html) 生成的 HTML 与您的页面不同,演示构建了一个 但您的页面构建一个 事物。您是说:

type: 'swf'

在您的 Fancybox 绑定中,这就是 ... 内容的来源。但是,href 指向普通的旧 YouTube 视频观看 HTML 页面,并且 href 最终作为 < 的 src 属性;嵌入>。用于嵌入 YouTube 视频的 URL 与视频的 HTML 页面不同,这可能是问题的根源。

href 替换为:

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

尝试将如下所示

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

第一个是 YouTube 的纯 HTML 页面,第二个是可嵌入的 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 之后的代码将 HTML 页面 URL(例如 http://www.youtube.com/watch?v=QmVvgSfdmJQ)重写为旧的可嵌入 SWF URL(例如 http://www.youtube.com/v/QmVvgSfdmJQ)。此版本问题还解释了为什么演示生成的 HTML 与您的不同。

因此,除了其他问题之外,您还存在一些版本问题。

Do you have any <a>s with both class="fancybox" and rel="fancyvideo"? If you do then you'll be binding Fancybox to those elements twice and Fancybox might not like that. Try taking out this one:

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

And see what happens with just the second one in place.

UPDATE: Strange. The demo (http://chadly.net/demos/video-lightbox.html) is producing different HTML than your page, the demo builds an <object data=...> but yours builds a <object><embed src="youtube-url"> thing. You're saying:

type: 'swf'

in your Fancybox binding, that's where the <object><embed>...</embed></object> stuff comes from. However, the href points at a plain old YouTube video viewing HTML page and that href ends up as the src attribute for the <embed>. The URL for embedding a YouTube video isn't the same as the video's HTML page and that's probably the source of your problem.

Try replacing the href that looks like this:

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

with one like this:

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

The first is the plain HTML page for YouTube, the second is the embeddable SWF.

UPDATE 2: The example you're working from is for Fancybox 1.0.0 but you're using 1.3.4, 1.0.0 has some special checks for YouTube that aren't present in later versions:

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

That's from 1.0.0 and the code after that else if rewrites the HTML page URL (e.g. http://www.youtube.com/watch?v=QmVvgSfdmJQ) to the older embeddable SWF URL (e.g. http://www.youtube.com/v/QmVvgSfdmJQ). This version problem also explains why the demo was producing different HTML than your's.

So, you have some version problems on top of everything else.

愛放△進行李 2024-10-23 19:46:52

检查您是否已包含 jquery.fancybox-media.js

<script type="text/javascript" src="jquery.fancybox-media.js?v=1.0.0"></script>

Check if you have included the jquery.fancybox-media.js

<script type="text/javascript" src="jquery.fancybox-media.js?v=1.0.0"></script>
我们只是彼此的过ke 2024-10-23 19:46:52

看起来您的代码可能略有偏差

<script type="text/javascript">
    $(document).ready(function() {
        $("a[@rel*=fancyvideo]").fancybox({
            overlayShow: true,
            frameWidth:640,
            frameHeight:360
        });
    });
</script>

http://chadly .net/post/2009/01/29/Lightbox-for-YouTube-Videos.aspx

Looks like your code might be slightly off

<script type="text/javascript">
    $(document).ready(function() {
        $("a[@rel*=fancyvideo]").fancybox({
            overlayShow: true,
            frameWidth:640,
            frameHeight:360
        });
    });
</script>

http://chadly.net/post/2009/01/29/Lightbox-for-YouTube-Videos.aspx

家住魔仙堡 2024-10-23 19:46:52

使用此示例不要忘记 href

<a class="fancybox" href="your path for image or other">
  <img src="imagepath">
</a>

use this sample don't forget href

<a class="fancybox" href="your path for image or other">
  <img src="imagepath">
</a>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文