2015-05-06 3 views
0

Я хочу обернуть все вложения YouTube на страницу в div. В настоящее время я могу обернуть все Iframes в DIV с:Целевой iframe, если он встроен в YouTube

jQuery(document).ready(function(){ 

    jQuery('iframe').wrap("<div class='ta-vid-cont'></div>"); 

    }); 

Но я хочу предназначаться только плавающие фреймы, которые YouTube Позволяет вставить. Как я могу это сделать?

Типичный код вставки YouTube выглядит следующим образом:

<iframe width="700" height="394" frameborder="0" allowfullscreen="" src="https://www.youtube.com/embed/d3LDQMKLc?feature=oembed&wmode=transparent"> 

ответ

1

вы можете использовать фильтр() в сочетании с регулярное выражение фильтрации через источник URL:

jQuery('iframe').filter(function(){ 
    return this.src.match(/youtube\.com/i); 
}).wrap("<div class='ta-vid-cont'></div>"); 

скрипку: http://jsfiddle.net/0hhk9kc5/1/

(с jsfiddle не будет отображать iframe по соображениям безопасности, я изменил фильтрацию на другой атрибут ... но идея такая же;))

[EDIT]: для покрытия youtu.be:

jQuery('iframe').filter(function(){ 
    return this.src.match(/(youtube\.com|youtu\.be)/i); 
}).wrap("<div class='ta-vid-cont'></div>"); 

объяснение используемых регулярных выражений: https://regex101.com/r/dU0bF2/1

+0

Интересно, хотя иногда URL является: ** youtu.be ** - Могу ли я настроить код для обоих случаев? –

+0

добавлено покрытие для youtu.be ... –

0

Я думаю, что вы можете найти в атрибуте ГКЗ фрейма для «www.youtube.com "

var str=$('iframe').attr('src'); 
if(str.search('www.youtube.com') > 0){ 
...... 
.... 
}; 

С уважением

+0

не будет работать, потому что '$ ('iframe'). Attr ('src')' возвращает значение первого iframe на странице. Должно быть в цикле и целевых конкретных случаях – charlietfl

+0

Чтобы получить все iframe, вы можете использовать $ ("iframe") .each (function() {var str = $ (this) .attr ('src'); if (str.search ('www.youtube.com')> 0) { ...... .... };}); – Simon

+0

no ... селектор вернет все iframe ... но 'attr()' as getter может только вернуть одно значение ... и это первый в коллекции – charlietfl

0

вы можете легко присвоить каждому IFrame идентификатор и захватить его с JQuery <iframe id="youtube" width="700" height="394" frameborder="0" allowfullscreen="" src="https://www.youtube.com/embed/d3LDQMKLc?feature=oembed&wmode=transparent">

$(document).ready(function(){ 

    $('#youtube').wrap("<div class='ta-vid-cont'></div>"); 
}); 
+0

Конечно, но код iframe автоматически генерируется , –

Смежные вопросы