[英]Why is my script failing w3c validation?
我有這段代碼:
<script language="javascript" type="text/jscript">
document.write("<img src='http://dm.leadgenesys.com/jpgp.lgt?en=P.........TP_Q=&ur=' + escape(document.referrer) + '' border='0' alt='no alt' />");
</script>
並且......當我嘗試驗證它時,我收到了這個錯誤:
文檔類型不允許元素“img”在這里
... rer)+'“border =”0“alt =”no alt“/>');
上面提到的元素是在不允許的上下文中找到的。 這可能意味着您有錯誤的嵌套元素 - 例如“body”部分中的“style”元素而不是“head”內部 - 或兩個重疊的元素(不允許)。
知道如何才能使這個JavaScript符合W3c標准嗎?
簡單:不要嘗試將您的JavaScript驗證為HTML。
你可以通過多種方式實現這一點......但到目前為止最好的方法是將它移到一個單獨的JS文件中,然后從短腳本中調用它
<body>
...
<script type="text/javascript" language="javascript">WriteImage();</script>
...
</body>
...或者更好的是,完全拋棄document.write()
並在加載后操縱DOM。
另一種使驗證器靜音的方法......
這樣說:
<script type="text/javascript">
/* <![CDATA[ */
your_javascript_here("<" + ... ;
/* ]]> */
</script>
CDATA部分應該足夠用於驗證器,/ *樣式注釋* /適用於不識別CDATA標記的舊瀏覽器(否則會破壞javascript)。
您可能在<head>
有<script>
元素,所以基本上您嘗試在文檔的頭部創建一個<img>
,這不起作用。 您需要將腳本放在<body>
。
但是,我建議你通過DOM添加元素 ,因為你不太可能遇到這些問題。
怎么樣的
<script>
<!--
var i = null;
if ((i/0) == 12)
alert("whooo! pack your things, as it's starting to rain cats and dogs!");
--><script>
看到“腳本”的內容在“html評論”里面?
它是HTML4標准的一部分。 您必須轉義在SCRIPT標記內找到的“</”序列。
<SCRIPT type="text/javascript">
document.write ("<EM>This will work<\/EM>")
</SCRIPT>
另一種解決方案,可能更好,是將JS代碼移動到外部文件中。
document.write("<" + "img … /" + ">");
要么:
document.write("\x3Cimg … /\x3E");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.