我使用带有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
答案 0 :(得分:0)
要附加选项,您可以执行以下操作:
$('iframe').each(function () {
var src = $(this).attr('src');
$(this).attr('src', src + '&showinfo=1&autohide=1');
});
要在一段html中批量替换选项,您可以执行此操作,假设要替换的所有网址都具有此格式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');
答案 1 :(得分:0)
在看到an answer to this question之后,我能够理解这一点。这是解决方案:
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+来支持工作。