一些方法來思考這個問題。自己決定哪個對你最有用...我可以逃避一個類內的html標籤(重新創建xmp標籤)嗎?
- 可以javascript重新創建不贊成的<帶有「xmp」類的xmp>標記嗎?
- 我們可以模仿SO的降價處理器的內聯代碼中的轉義標籤嗎?
- (metaSO,我承認)SO的md處理器如何在內聯代碼中轉義標籤?
- 我們可以在HTML中嵌入的降價代碼塊中逃脫<嗎?
的目標是:逃逸<
,使該類包含文本類< HTML>,<體>,<頭>,< SCRIPT>,<風格>,<身體>,以及任何其他標記不屬於<體內>或專門加工,不含專門加工。
< xmp>實現了這個(並且實際上繼續 - 不推薦使用,但仍然支持瀏覽器):<xmp><body></xmp>
就像<body>
。 SO的降價處理器實現該中內聯代碼:顯示<body>
只寫`<體>`(其本身是\`& LT;身體> \`和不能被包括在SO代碼塊&hellip;我不唯一一個誰可以利用這一點;)
我的解決方案至今—所有<
與<
—更換負責的特少的HTML標籤(有沒有爲這些批內<體>靜態內容標籤的名稱<? div>,< code>,< span>等),但「特殊」標籤仍然必須是st藝術與& lt;而不是<
Javascript:
xmps = document.getElementsByClassName('xmp');
for (var i = 0; i < xmps.length; i++) {
var xmp = xmp.item(i);
var newhtml = xmp.innerHTML.replace(/\>/g,"\>").replace(/\</g,"\<");
xmp.innerHTML = newhtml;
}
有了,我可以寫<div class="xmp"><body></div>
。
什麼讓
<div class="xmp"><body></div>
?
還是怎麼樣?
<div class="xmp">
<body>
&/div>
</div>
我的項目的細節可能無關緊要:有會在class="xmp"
降價,所以我們必須要小心行初始>
秒。沒有用戶輸入,所以安全性不是(?)問題。我希望有一個不使用jQuery的解決方案。
確實'xmp'仍然是瀏覽器支持的,所以如果你想繼續使用它,我想你可以。但是,這並不是長壽的承諾,我個人不會使用它。 事實上,Pagedown(SO的降價解析器)能夠將\'< body \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \所以一些& lt;詭計 - 或東西 - _is_可能。 – henry 2013-02-19 17:29:53