2016-09-19 1 views
0

je donne les résultats suivants HTML:JavaScript conservent les entités HTML code lors de la sérialisation

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

Je dois sérialiser HTML au texte ainsi que des entités HTML comme leur code existant (espaces ajoutés pour empêcher SO de rendre caractères littéraux):

< p> contient une entité spatiale HTML & # 160 ;. </p>

Lorsque sérialisation HTML les entités HTML sont rendus au lieu de converti à leur forme de code/texte:

new XMLSerializer().serializeToString(element) 

Je l'ai regardé dans d'autres méthodes de conversion du code HTML au texte, y compris innerHTML bien que je ne l'ai pas réussi à déterminer tout autre moyen directs pour produire le code HTML qui existe sans qu'il soit modifié par le navigateur.

Je suis aussi ouvert à remplacer les entités HTML avec un createTreeWalker au besoin si je préfère une approche plus directe. Pas de cadres. Suggestions s'il vous plaît?

+0

Je voudrais essayer saisir le innerHTML, et échapper à la   manuellement (peut-être avec une petite fonction que vous pouvez trouver autour en ligne), puis quand il est sorti, il sera abandonnez naturellement et remettez ce que vous avez là. – spozun

Répondre

0

S'il vous plaît voir cette réponse SO: https://stackoverflow.com/a/3700369/3218479.

Vous pouvez utiliser le code:

// 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;