1

我在这里有一个来自 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;”以进行 w3c 验证,这可以使用 jquery

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

4

2 回答 2

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 所提到的,这真的没有什么区别。

于 2012-12-14T05:51:23.413 回答
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/

于 2012-12-14T07:46:14.833 回答