2016-09-19 56 views
0

時,我有以下HTML的JavaScript保存HTML實體代碼序列化

<p>This contains an HTML space entity &#160;.</p> 

我需要序列化這個HTML與HTML實體,因爲它們現有的代碼以及文本(空格加入是爲了避免因此從渲染字面字符):

< p>它包含一個HTML空間實體&#160 ;. </P>

當序列化的HTML HTML實體是渲染代替轉化爲它們的代碼/文字形式:

new XMLSerializer().serializeToString(element) 

我看到的轉換的HTML代碼的其它方法包括innerHTML,儘管我還沒有設法確定任何直接的方法來輸出存在的HTML代碼,而不會被瀏覽器修改。

如果需要,我也可以用createTreeWalker替換HTML實體,儘管我更喜歡更直接的方法。沒有框架。請提出建議?

+0

我會努力抓住的innerHTML,並手動逃避 (也許一個小功能,你可以在網上找到周圍),然後當它被輸出時,它會自然而然地放下你在那裏的東西。 – spozun

回答

0

請看這個SO回答:https://stackoverflow.com/a/3700369/3218479

你可以使用如下代碼:

// Prepare element 
var myEl = document.createElement("p"); 
myEl.innerText = "This contains an HTML space entity &#160;."; 

// Convert to string 
var textArea = document.createElement("textarea"); 
textArea.innerHTML = myEl.outerHTML; 
var myElText = textArea.innerText; 
delete textArea;