将参数动态添加到嵌入式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');