2012-01-05 150 views
0

我需要将&wmode=transparent附加到我的所有youtube iframe嵌入在我的博客使用JavaScript。javascript正则表达式URL替换

<iframe src="http://www.youtube.com/embed/7jW_0IQWOQg?rel=0&wmode=transparent"></frame> 

所以我想我需要匹配一个YouTube嵌入网址,然后将其附加到URL的末尾:

所以......要改变

<iframe src="http://www.youtube.com/embed/7jW_0IQWOQg?rel=0"></frame> 

需求。 ..我如何匹配网址的结尾?

编辑:

我使用的NodeJS所以没有DOM。

我在尝试检查博客中单个帖子的整个内容。所以这个字符串将包含文本/图片html和可能的多个youtube嵌入。

回答

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(""); 
}); 

这里的一个working example

+0

对不起,我应该提到这是在这样的NodeJS没有DOM。 – bradley 2012-01-05 15:07:34

+0

没问题。 'String'中包含的'