Bri*_*ian 7 javascript debugging jquery fancybox
使用的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>
你有什么<a>用能够对S 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在一个普通的YouTube视频观看HTML页面的点,并href最终作为该src属性<embed>.嵌入YouTube视频的网址与视频的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不同于您的HTML.
因此,除了其他一切之外,您还有一些版本问题.