jQuery的的fancybox YouTube视频不工作(jQuery FancyBox YouT

2019-08-18 09:37发布

我有一个情况,即我不能修改HTML代码为锚标记,用“HREF”属性除外。 因此,添加类的定位标记不是一个选项。

HTML标记如下:

<a href="http://www.youtube.com/watch?v=#########&amp;autoplay=1"></a>

本和其他链路之间进行区分,我已经添加基于“href”属性的jQuery代码的选择器。

代码如下:

(function ($) { 

  $('a[href*="youtube"]').fancybox({
            'padding' : 0,
            'type' : 'swf',
            'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
            'swf' : { 'wmode' : 'transparent', 'allowfullscreen' : 'true' }
            });
e.preventDefault();

})(jQuery);

这似乎并没有在所有的工作。 谁能告诉我在哪里,我错了? 我使用Drupal的,因此为什么我在顶部添加部分,以使以“$”。

我不能在控制台中看到任何错误,页面仅导航直没有JavaScript的干预YouTube页面。

Answer 1:

adding a class to the anchor tag is not an option

既然你可以随时通过jQuery添加类不一定是真正喜欢

$('a[href*="youtube"]').addClass("fancybox")

总之,我个人不喜欢用swf模式的YouTube视频更多,但iframe模式; 这使得它们更容易处理和跨平台兼容(包括iOS)

我会做的是,用.each()方法:

  • 每一个转换hrefembed使用javascript格式.replace()
  • 结合各锚的fancybox
  • 设置新的转换href使用的fancybox href API选项

这是两个的fancybox V1.3.4或V2.X工作的代码:

(function ($) {
  $(document).ready(function(){
    $('a[href*=youtube]').each(function () {
        // convert youtube swf href to embed for iframe
        var thisHref =  this.href
                       .replace(new RegExp("watch\\?v=", "i"), 'embed/')
                       .replace(new RegExp("&", "i"), '?');
        // bind fancybox to each anchor
        $(this).fancybox({
            "padding" : 0,
            "type" : "iframe",
            // add trailing parameters to href (wmode)
            "href" : thisHref + "&amp;wmode=opaque"
        }); // fancybox
    }); // each
  }); // ready
})(jQuery);

请注意 ,我说wmode=opaque ,否则关闭按钮将成为YouTube视频的后面。

的jsfiddle与1.3.4版本...或者的jsfiddle与v2.1.4



Answer 2:

你已经错过了doc ready关闭内部处理程序,并没有必要为e.preventDefault()

(function ($) { 
   $(function(){
     $('a[href*="youtube"]').fancybox({
        'padding' : 0,
        'type' : 'swf',
        'href' : this.href.replace(/watch?v=/gi, 'v/'),
        'swf' : { 'wmode' : 'transparent', 'allowfullscreen' : 'true' }
     });    
  });
})(jQuery);


文章来源: jQuery FancyBox YouTube videos not working