Javascript:字符「;」中不容許使用屬性規格列表怎麼辦? javascript
character ";" not allowed in attribute specification list怎麼解決? html
在使用w3c的檢測工具檢測以後,網頁提示這樣的錯誤「character ";" not allowed in attribute specification list」,翻譯成中文是「Javascript:字符「;」中不容許使用屬性規格列表」,這樣的問題怎麼解決?其實很簡單。 java
這個問題通常是因爲程序中使用了JavaScript腳本而形成的, app
W3c官方給出的解釋是: curl
可能的緣由: 工具
轉義的JavaScript生成多個驗證錯誤,這是其中之一。 url
解決方案: spa
在CDATA包裹JavaScript代碼;從JavaScript中隱藏的CDATA用/ /註釋。 翻譯
http://www.htmlpedia.org/wiki/Tidy_88 code
參考文獻:
HTML規範:http://www.w3.org/TR/html4/
例如我有下面一段代碼:這是織夢的幻燈片代碼:
<script language='javascript' type="text/javascript">
linkarr = new Array();
picarr = new Array();
textarr = new Array();
var swf_width=655;
var swf_height=326;
var configtg='0xffffff|1|0x3FA61F|5|0xffffff|0xC5DDBC|0x000033|2|3|1|_blank';
var files = "";
var links = "";
var texts = "";
{dede:arclist flag='f' row='5' typeid='all' noflag='c'}
linkarr[[field:global.autoindex/]] = "[field:arcurl/]";
picarr[[field:global.autoindex/]] = "[field:litpic/]";
{/dede:arclist}
for(i=1;i<picarr.length;i++){
if(files=="") files = picarr[i];
else files += "|"+picarr[i];
}
for(i=1;i<linkarr.length;i++){
if(links=="") links = linkarr[i];
else links += "|"+linkarr[i];
}
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ swf_width +'" height="'+ swf_height +'">');
document.write('<param name="movie" value="{dede:global.cfg_templeturl /}/default/images/bcastr3.swf" /><param name="quality" value="high" />');
document.write('<param name="menu" value="false" /><param name=wmode value="opaque" />');
document.write('<param name="FlashVars" value="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'&bcastr_config='+configtg+'" />');
document.write('<embed src="{dede:global.cfg_templeturl /}/default/images/bcastr3.swf" wmode="opaque" FlashVars="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_config='+configtg+'&menu="false" quality="high" width="'+ swf_width +'" height="'+ swf_height +'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />'); document.write('</object>');
</script>
解決方法就是在<script>和</script>之間的部分用CDATA給包起來。
具體代碼參考以下:(依上面的爲例)
<script language='javascript' type="text/javascript">
//<![ CDATA [
linkarr = new Array();
picarr = new Array();
textarr = new Array();
var swf_width=655;
var swf_height=326;
var configtg='0xffffff|1|0x3FA61F|5|0xffffff|0xC5DDBC|0x000033|2|3|1|_blank';
var files = "";
var links = "";
var texts = "";
{dede:arclist flag='f' row='5' typeid='all' noflag='c'}
linkarr[[field:global.autoindex/]] = "[field:arcurl/]";
picarr[[field:global.autoindex/]] = "[field:litpic/]";
{/dede:arclist}
for(i=1;i<picarr.length;i++){
if(files=="") files = picarr[i];
else files += "|"+picarr[i];
}
for(i=1;i<linkarr.length;i++){
if(links=="") links = linkarr[i];
else links += "|"+linkarr[i];
}
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ swf_width +'" height="'+ swf_height +'">');
document.write('<param name="movie" value="{dede:global.cfg_templeturl /}/default/images/bcastr3.swf" /><param name="quality" value="high" />');
document.write('<param name="menu" value="false" /><param name=wmode value="opaque" />');
document.write('<param name="FlashVars" value="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'&bcastr_config='+configtg+'" />');
document.write('<embed src="{dede:global.cfg_templeturl /}/default/images/bcastr3.swf" wmode="opaque" FlashVars="bcastr_file='+files+'&bcastr_link='+links+'&bcastr_config='+configtg+'&menu="false" quality="high" width="'+ swf_width +'" height="'+ swf_height +'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />'); document.write('</object>');
//]]>
</script>