Google + и Facebook стиль видео iframe для YouTube.по умолчанию показывает видеоизображение, при нажатии на изображение воспроизводится видео - PullRequest
1 голос
/ 18 января 2012

У меня уже есть плагин, который встраивает видео на мой сайт, который называется oembed. Что мне нужно, так это код javascript, который преобразует фреймы youtube или другие встраивания в изображение видео по умолчанию, когда по клику на изображении появляется и воспроизводится видеоплеер. Google + и 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")));
});

Проблема в том, что встраивание работает, но есть проблема с перехватом идентификатора видео.

1 Ответ

0 голосов
/ 19 января 2012

Проблема в том, что ваш 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;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...