2010-09-16 67 views
0

我試圖讓頁面驗證(http://validator.w3.org),它抱怨我在腳本標記內部有一些xml。由於腳本標記中的XML而無法驗證頁面

我該如何解決這個問題?我是否應該在我的腳本標籤的內容上寫下「不要看着我」?

68行,列114:爲 元素 「STR_PROCESSING」 結束標記這是不 開放

>處理.... </STR_Processing >

代碼:

<script type="text/javascript" defer="defer"> 
var sML_XML='<STR_Processing>Processing....</STR_Processing><STR_OK>...'; 
</script> 
+0

請出示腳本標記。 – 2010-09-16 19:50:42

回答

2

你必須把斜槓前一個反斜槓(\),當它在一個腳本。
看看這裏:http://www.htmlhelp.com/tools/validator/problems.html#script

比如:
var test="<b>something<\/b>";
代替:
var test="<b>something</b>";

這應該沒有錯誤驗證。

+1

+1。如果您直接看驗證程序輸出的錯誤消息,則應該看到「如果此錯誤發生在腳本元素內」消息,該消息鏈接到驗證程序自己的常見問題解答,然後再鏈接到該頁面。 – Quentin 2010-09-16 20:03:50

+1

@David Dorward,這就是我得到那個頁面的方式。 :)很久以前,我已經看到它,但忘記了它的地址,但我記得我從驗證器的頁面導航到了它,所以我創建了一個錯誤的代碼來獲取錯誤和頁面地址。 :P – rhino 2010-09-16 20:07:42

0

如果您在字符串中使用的標籤,你可以這樣做:

var yourHTML = "<STR_PROCESSING>YourData<" + "/STR_PROCESSING>"; 
+1

這可行,但效率不高。按照犀牛的答案和驗證者自己的FAQ進行轉義是正確的解決方案。 – Quentin 2010-09-16 19:57:34

0

正確的XML的方法是使用CDATA節標識符:

<script type="text/javascript">//<![CDATA[ 
/* code */ 
//]]></script> 
+0

錯誤消息是當文檔是HTML而不是XHTML時發生的,所以這不會解決問題。 – Quentin 2010-09-16 19:58:07

+0

如果是HTML,我會使用轉義序列而不是'<', '>'和'&':'\ x3C'(<), '\x3E'(>)和'\ x26'(&)。 – Lekensteyn 2010-09-16 20:00:27

+1

只有'<或'/'需要被轉義(哪一個不重要,關鍵是' Quentin 2010-09-16 20:01:59

相關問題