![](/img/trans.png)
[英]How do I append the text tag to just one svg e.g. svg tag with “id=50”?
[英]When objects (e.g. img tag) is created by javascript, it doesn't have the closing tag. How do I make it W3C valid?
圖像標記( <img src="" alt="" />
),換行符標記( <br />
)或水平規則標記( <hr />
)在末尾有斜杠以表示自身為自閉標簽。 但是,當這些對象是由javascript創建的,並且我查看了源代碼時,它們沒有斜杠,使它們因W3C標准而無效。
我怎么能克服這個問題?
(我使用javascript原型庫)
你是如何看待“來源”的? JavaScript創建的元素不會出現在“查看源代碼”中。 你在談論innerHTML
嗎?
如果是這樣,那么您將獲得的是Web瀏覽器對文檔中DOM節點的序列化。 在瀏覽器中,頁面的HTML標記不是文檔狀態的最終存儲。 該文檔存儲為Node
對象的加載; 當這些對象被序列化回標記時,該標記可能看起來不像解析為獲取文檔的原始HTML頁面標記。
所以無論哪個:
<img src="x" alt="y"/>
<img src="x" alt="y">
<img alt = "y" src="x">
img= document.createElement('img'); img.src= 'x'; img.alt= 'y';
您用來創建HTMLImageElement
節點,當您使用innerHTML
對其進行序列化時,瀏覽器通常會生成相同的HTML標記。
如果瀏覽器處於本機XML模式(即因為頁面作為application/xhtml+html
),那么innerHTML
值肯定會包含自動關閉語法,如<img/>
。 (在某些瀏覽器中,您也可能會看到其他XML內容,如命名空間。)
但是,如果您今天更有可能在媒體類型text/html
下提供“HTML兼容的XHTML”,那么瀏覽器實際上根本不使用XHTML,所以當您使用時,您將獲得old-school-HTML訪問innerHTML
,你不會看到自我關閉/>
形式。
沒問題。 W3C標准僅涉及原始文件中的標記,之后的任何更改都直接發布到DOM(不是您的醬碼),這也是W3C標准。 這絕不會影響您網站的標准合規性。
更詳細地說,HTML和XHTML只是構建DOM(文檔對象模型)的不同方式,最好將其描述為用於描述網頁的大型節點樹結構。 一旦構建了DOM,用於構建它的語言就無關緊要了。如果你願意,甚至可以使用純javascript構建DOM。
它永遠不會重要!我曾經確認W3C的每一個標准,但它變成了一個愚蠢的事情! 只要符合其中允許您編寫跨瀏覽器的safe
版本,您的案例絕對不是其中之一,因為它從來不是問題而且不會導致任何問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.