我已经有一个插件可以在我的网站上嵌入名为oembed的视频。我需要的是一个javascript代码,用于将youtube iframe或其他嵌入转换为视频的默认图像,当点击图像时,视频播放器会出现并播放。谷歌+和Facebook已经实现了这个想法。请让我知道如何实现这一目标。
这是我的youtube iframe的示例:
<iframe width="267" height="200" src="http://www.youtube.com/embed/YOUTUBEID;feature=oembed" frameborder="0" allowfullscreen=""></iframe>
我找到了两个代码并将其修改为:
var RE = /embed\/([a-zA-Z0-9_-]{11})/;
jQuery( "iframe" ).each(function(){
var id = ( this.src.match( RE ) || [] )[1];
if( id ) {
jQuery( this ).replaceWith(
'<img width="420" height="215" src="http://i1.ytimg.com/vi/'+id+'/hqdefault.jpg"'+
' class="youtube" />' );
}
});
var youtubeIFRAME = '<p class="close">CLOSE</span><iframe data-address="$1" src="http://www.youtube.com/embed/$1?rel=0" frameborder="0" allowfullscreen></iframe>';
jQuery("img.youtube").click(function(){
var $this = $(this);
$this.replaceWith('<iframe width="420" height="315" src="http://www.youtube.com/embed/$1?rel=0" frameborder="0" allowfullscreen></iframe>'
.replace("$1", $this.attr("data-address")));
});
现在问题是嵌入有效,但是在捕获视频ID时出现问题。
答案 0 :(得分:0)
问题是你的iframe周围有一个链接元素。我相信你可以通过删除链接和使用其他东西来解决这个问题,比如div:
function changeiframe() {
objs = document.getElementsByTagName('iframe');
for (i in objs) {
if (objs[i].src) {
vidid = objs[i].src.split('/')[4].split('?')[0];
linkurl = 'http://www.youtube.com/watch?v='+vidid;
bgurl = 'http://img.youtube.com/vi/'+vidid+'/0.jpg';
imgurl = 'playsh.png';
container = document.createElement('div');
container.style.backgroundImage = 'url('+bgurl+')';
container.className += "youvid";
img = document.createElement('img');
img.src = imgurl;
container.appendChild(img);
objs[i].outerHTML = container.outerHTML;
}
}
}