这是我的 HTML:
<a class="video iframe" href="http://www.youtube.com/watch?v=Psk2Pq03rv0&fs=1">Arbitrary text</a>
这是 Fancybox javascript:
<script type='text/javascript'>
$(document).ready(function(){
$("a.video").fancybox({
'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
'type' : 'swf',
'swf' : {
'wmode' : 'transparent',
'allowfullscreen': 'true'
}
});
return false;
});
</script>
Firebug 控制台说:
this.href is undefined
'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
因此,点击此链接会将用户带到 YouTube,并且不会触发 Fancybox。
将有问题的行更改为 'href' : this.href.replace(new RegExp("watch?v=", "i"), 'v/'),
对我来说似乎更正确,产生相同的结果。
有什么建议吗?
编辑:我调整了脚本以仅包含与我的问题相关的部分。
最佳答案
脚本标签应如下所示
<script type='text/javascript'>
$(document).ready(function(){
$("a.video").click(function() {
$.fancybox({
'padding' : 0,
'autoScale' : false,
'title' : this.title,
'overlayOpacity' : '.6',
'overlayColor' : '#333',
'transitionIn' : 'none',
'transitionOut' : 'none',
'centerOnScroll' : false,
'showCloseButton' : true,
'hideOnOverlayClick': false,
'href' : this.href.replace(new RegExp("watch\\?v=", "i"), 'v/'),
'type' : 'swf',
'swf' : {
'wmode': 'transparent',
'allowfullscreen': 'true'
}
});
return false;
});
});
</script>
网址应如下所示 - 在其末尾添加 &fs=1
<a class="video iframe" href="http://www.youtube.com/watch?v=Psk2Pq03rv0&fs=1">Arbitrary text</a>
关于jquery - Fancybox iframe 说我的 YouTube href 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3070475/