使用Fancybox自动播放嵌入式Youtube视频

时间:2011-03-01 19:00:12

标签: jquery replace youtube fancybox

我的页面上有一个链接的图片,点击后会加载 Fancybox 模式框。它成功完成了这项工作,但我希望视频自动播放。如果我将YouTube网址设置为autoplay=1,则隐藏的DIV会在页面加载时在后台播放。

// Here is the linked image
<a id="inline" href="#video"><img src="someimage.jpg" alt="Description" /></a>

// Here is the hidden DIV
<div style="display:none">
  <div id="video">
    <iframe title="YouTube video player" width="640" height="390" src="###YOUTUBE LINK###rel=0&amp;hd=1&amp;autoplay=0" frameborder="0"></iframe>
  </div>
</div>

// Here is the script
<script type="text/javascript">
  $("a#inline").fancybox({
    'hideOnContentClick': true,
  });
</script>

我的猜测是我需要做某种 Bind()事件和字符串替换才能将autoplay=0更改为autoplay=1,但我尝试了一些变化而没有任何成功

有什么想法吗?

1 个答案:

答案 0 :(得分:8)

首先将关联图片的href更改为您的YouTube网址,确保“autoplay=1like this link(不是嵌入网址)。然后摆脱隐藏的<div>follow tip 4 on the FancyBox "Tips & Tricks" page,这是非常直接的:

$("#tip4").click(function() {
    $.fancybox({
            'padding'       : 0,
            'autoScale'     : false,
            'transitionIn'  : 'none',
            'transitionOut' : 'none',
            'title'         : this.title,
            'width'     : 680,
            'height'        : 495,
            'href'          : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
            'type'          : 'swf',
            'swf'           : {
                 'wmode'        : 'transparent',
                'allowfullscreen'   : 'true'
            }
        });

    return false;
});

这样做,人们仍然可以观看视频,即使对他们禁用了JS。