Javascript jQuery FancyBox YouTube视频不工作
我有一种情况,除了'href'属性外,我无法修改锚定标记的HTML代码。因此,向锚定标记添加类不是一个选项 HTML标记如下所示:Javascript jQuery FancyBox YouTube视频不工作,javascript,jquery,youtube,fancybox,fancybox-2,Javascript,Jquery,Youtube,Fancybox,Fancybox 2,我有一种情况,除了'href'属性外,我无法修改锚定标记的HTML代码。因此,向锚定标记添加类不是一个选项 HTML标记如下所示: <a href="http://www.youtube.com/watch?v=#########&autoplay=1"></a> (function ($) { $('a[href*="youtube"]').fancybox({ 'padding' : 0, 't
<a href="http://www.youtube.com/watch?v=#########&autoplay=1"></a>
(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,因此我在顶部添加了部件以启用“$”
我在控制台中看不到任何错误,页面直接导航到YouTube页面,没有JavaScript干预。您错过了闭包中的
doc ready
处理程序,并且不需要e.preventDefault()
:
这不一定是真的,因为您总是可以通过jQuery添加类,比如
$('a[href*="youtube"]').addClass("fancybox")
无论如何,我个人不喜欢在youtube视频中使用swf
模式,只喜欢iframe
模式;这使得它们更易于处理,并且跨平台兼容(包括iOS)
我要做的是,使用.each()
方法:
- 使用javascript
.replace()
- 将每个锚点绑定到fancybox
- 使用fancybox
API选项设置新转换的href
href
wmode=opaque
,否则关闭按钮将位于youtube视频后面
请参见1.3.4版的。。。或者使用v2.1.4,谢谢您的帮助。但是,我现在在控制台中遇到以下错误:uncaughttypeerror:无法调用undefined的方法“replace”。
adding a class to the anchor tag is not an option
$('a[href*="youtube"]').addClass("fancybox")
(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 + "&wmode=opaque"
}); // fancybox
}); // each
}); // ready
})(jQuery);