2011-07-08 48 views
0

我正在使用帶有自定義屬性的doctype來驗證XHTML。這是我的文檔類型Remove the trailing]>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" 
[ 
<!ATTLIST div data-localized CDATA #IMPLIED> 
]> 

但問題是,當我在瀏覽器中加載我的頁面時,它顯示「]>」。 XHTML驗證罰款。

+0

我不是這種東西的專家,但它在我看來像你的代碼是無效的,因爲你嵌套<>的。我猜想第二個是關閉第一個<,最後一個>懸空。 – Flimzy

+0

它驗證當我檢查W3validator –

+0

是的,我在你的文章中看到。它似乎也在您的網絡瀏覽器中驗證。但僅僅因爲它在語法上是正確的,並不意味着它可以做到你想要的。 – Flimzy

回答

1

查覈在A list apart文章 -

不幸的是,當您顯示 文件在瀏覽器中,]>顯示了對 屏幕。

,指出涉及使用一個單獨的DTD文件的解決方案(將在W3C驗證失敗...)

2

解決辦法是使用JavaScript將其刪除。在您的身體聲明後添加腳本,例如

<html> 
<body> 
<script type="text/javascript"> 

function removeFirstTwo() { 
    try { 
    var htmlBody = document.getElementsByTagName("BODY")[0]; 
    if (htmlBody.firstChild.nodeValue.substr(0,2) == "]>") { 
     htmlBody.firstChild.nodeValue = ""; 
    } 
    } catch(e) { 
    //do nothing 
    } 
} 

removeFirstTwo(); 

</script> 
...