使用jquery替换youtube嵌入代码中的字符串

时间:2012-12-14 05:46:58

标签: php javascript jquery

我这里有来自youtube的嵌入代码,我使用插件来显示该视频

<object width="350" height="200">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/KVu3gS7iJu4&autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/KVu3gS7iJu4&autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="350" height="200">
</embed>
</object>

我的问题是我无法编辑这些代码,我需要更改“&amp;”签署“&amp;”以进行w3c验证,这可以使用jquery

这是我的样本小提琴,它不起作用,不知道如何http://jsfiddle.net/kfX9M/

2 个答案:

答案 0 :(得分:2)

使用jQuery更改它不会使您的HTML有效。您可以使用某些PHP在服务器端更改它:

$dom = new DOMDocument();
$dom->loadHTML($your_embed_code_here);
$xpath = new DOMXPath($dom);
$items = $xpath->query("//*[contains(@href,'&')]");
$l = $item->length;
for($i=0; $i<$l; $i++) {
  $items->item($i)->setAttribute("href",str_replace("&","&amp;",$items->item($i)->getAttribute("href")));
}
$out = $dom->saveHTML();

但是,正如elclanrs所说,它确实没有区别。

答案 1 :(得分:0)

嗨,老兄我用 jQuery 正则表达式做了。,

<script type="text/javascript">
$(document).ready( function() {

var re=/&/g;

var value=$("param[name='movie']").val();

var modified_value=value.replace(re,'&amp;');

$("param[name='movie']").val(modified_value);

var src = $("embed").attr('src');

var src_modified_value=src.replace(re,'&amp;');

$("embed").attr('src',src_modified_value);

});
</script>

我认为这可以帮助您解决问题。

要查看它的实际效果:http://jsfiddle.net/john_rock/7H2Hk/