Динамически добавлять параметры во встроенный URL - PullRequest
0 голосов
/ 24 февраля 2012

Я использую программу jAlbum со скином Lightflow для создания галереи. Я встраиваю видео YouTube в галерею. Программа выдает следующий HTML-код (для отдельного встроенного видео), который выглядит следующим образом:

<div class="item">
 <img class="content hidden" src="thumbs/video.jpg" alt="" />
    <div class="ref hidden">item27</div>
    <div class="caption"><h3></h3></div>
    <div class="comment hidden"></div>
    <div class="author hidden"></div>
    <div class="params hidden">lightwindow_width=640,lightwindow_height=360</div>
    <div class="info hidden"></div>
    <div class="embed hidden"><iframe width="640" height="360" 
src="http://www.youtube.com/embed/E-lTPK5sQAA?fs=1&feature=oembed" 
frameborder="0" allowfullscreen></iframe></div>
    <div class="thumbWidth hidden">350</div>
    <div class="thumbHeight hidden">231</div>
    <a id="item27" class="lightwindow hidden" title="" rel="gal[cat]" 
href="http://www.youtube.com/watch?v=E-lTPK5sQAA" ></a>
    </div>

Я хотел бы добавить некоторые параметры в код для вставки YouTube. Параметры rel=0&modestbranding=1&iv_load_policy=3

Я не могу добавить их в галерею (или, по крайней мере, я не знаю, как), поэтому мне нужно добавить их динамически в конец кода YouTube src после загрузки страницы в браузере.

Как мне это сделать? Пожалуйста, приведите примеры, как Javascript может привести меня к циклу.

РЕДАКТИРОВАТЬ 1

Я пытался этот код:

var $j = jQuery.noConflict();
$j('iframe').attr('src', $j(this).attr('src') + 
  '&rel=0&modestbranding=1&iv_load_policy=3'));

и когда я вижу синтаксические ошибки в Dreamweaver, и Firebug говорит, что я missing ; before statement Чего мне не хватает в коде?

РЕДАКТИРОВАТЬ 2

Когда я пытаюсь использовать вышеуказанный код, src изменяется на undefined&rel=0&modestbranding=1&iv_load_policy=3

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Я смог выяснить это после того, как увидел ответ на этот вопрос .Вот решение:

var $j = jQuery.noConflict();
$j('iframe').prop('src', function(i, oldSrc) {
return oldSrc + (oldSrc.indexOf('?') ? 
'&rel=0&modestbranding=1&iv_load_policy=3' : 
'?rel=0&modestbranding=1&iv_load_policy=3');
})

Примечание: вы должны использовать jQuery 1.6+ для поддержки проп.

0 голосов
/ 24 февраля 2012

Чтобы добавить параметры, вы можете сделать это:

$('iframe').each(function () {
    var src = $(this).attr('src');
    $(this).attr('src', src + '&showinfo=1&autohide=1');
});

Чтобы заменить массовые параметры в фрагменте html, вы можете сделать это, предполагая, что все заменяемые URL имеют этот формат http://www.youtube.com/embed/id?params:

var addYTparams = function(html, params){
    return html.replace(/(youtube.com.+\?).+/, '$1'+params);
};
addYTparams($el.html(), 'rel=0&modestbranding=1&iv_load_policy=3');
...