将参数动态添加到嵌入式URL

我使用程序jAlbum与皮肤Lightflow来构建一个库。 我在画廊中嵌入了YouTubevideo。 该程序生成以下HTML(针对单个嵌入式video),如下所示:

我想在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 missing ; before statement我在代码中缺少什么?

编辑2

当我尝试上面的代码时, src被更改为undefined&rel=0&modestbranding=1&iv_load_policy=3

在看到这个问题的答案之后,我能够理解这一点 。 这是解决方案:

 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+才能使用prop。

要附加选项,您可以执行以下操作:

 $('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');