我需要使用javascript将&wmode=transparent
附加到我的博客上的所有youtube iframe嵌入。
因此...
<iframe src="http://www.youtube.com/embed/7jW_0IQWOQg?rel=0"></frame>
需要改为:
<iframe src="http://www.youtube.com/embed/7jW_0IQWOQg?rel=0&wmode=transparent"></frame>
所以我想我需要匹配一个youtube embed url,然后将它追加到url的末尾...我怎样才能匹配url的结尾?
修改
我正在使用nodejs,因此没有DOM。
我正在尝试检查博客中单个帖子的全部内容。因此字符串将包含text / image html以及可能包含多个youtube嵌入。
答案 0 :(得分:2)
这样的事情怎么样:
var iframes = document.getElementsByTagName("iframe"),
i,
len,
src;
for (i = 0, len = iframes.length; i < len; i++) {
src = iframes[i].src;
if (src.indexOf("http://www.youtube.com/embed") > -1) {
iframes[i].src = src + "&wmode=transparent";
}
}
如果您无法访问DOM(即您正在搜索String
),那么您可以使用以下内容:
str = str.replace(/http:\/\/www.youtube.com\/embed\/(.*?)"><\/iframe>/g, function (a, b) {
return ['http://www.youtube.com/embed/', b, '&wmode=transparent"></iframe>'].join("");
});
答案 1 :(得分:1)
在Github上查看uri.js项目:https://github.com/medialize/URI.js和http://medialize.github.com/URI.js/以及http://medialize.github.com/URI.js/docs.html#accessors-search
答案 2 :(得分:0)
好吧,要查看它是否是YouTube网址,您只需检查其中是否有“youtube”。如果有,则附加参数。不确定你的意思是字符串中可能有多个URL。但是,可能没有任何参数,因此您需要使用?
而不是&
。在这种情况下,只需使用indexOf
来检查您应该使用的内容。
var iframes = document.getElementsByTagName("iframe");
for(var i = 0; i < iframes ; i++) {
var iframe = iframes [i];
if (iframe.src.indexOf("youtube") >= 0)
iframe.src += "&wmode=transparent";
}