只有很好的解決方案我有一個函數創建一個HTML/CSS的MessageBox,我想顯示一個變量(已經逃脫了與PHP json_encode(),無XSS注入可能)。 我想在硬編碼的消息中顯示這個變量,它始終是相同的消息。 消息顯示<b></b>
HTML粗體標記之間這個變量:的innerHTML似乎是這個
Message("Do you really want to delete <b>" + reference + "</b> ?");
傳遞給消息()函數的字符串將在div標籤被添加和我的唯一的解決方案是使用innerHTML如果我想可變引用以粗體顯示。
很多人說:「不要使用innerHTML它不歸」,「這是一個微軟專有的功能,它不是W3C,將可能不再支持」。
我一直使用DOM方法,但在我的情況下,DOM1 myDiv.firstChild.nodeValue屬性或甚至DOM3 myDiv.textContent方法將無法工作,因爲該字符串僅顯示爲文本。
的innerHTML方法具有優勢,無法逃脫<>
字符的HTML實體,不幸的是我認爲這是不可能得到與DOM方法相同的結果。
我不能使用使用document.createElement(「B」)方法,它會因爲希望我的留言()函數來獲得完整的風格的字符串作爲一個參數,一切變得複雜。
所以我的想法是,innerHTML的需要在某些情況下,而不是複雜的東西去使用,它取決於你如何使用它是不是一個不好的做法。
評論贊賞。
元素節點(藥粥,它是有道理的)的'.innerHTML'屬性是一個記錄HTML5功能。 – Pointy
@Pointy謝謝,這是否意味着它將成爲DOM的一部分,就像微軟的XMLHttpRequest被接受了一樣? http://www.w3.org/TR/html5/embedded-content-0.html#dom-innerhtml – baptx
重要的一點是,它在當今每個重要的現代瀏覽器中都受到支持,包括所有IE版本,移動瀏覽器等。 – Pointy