Convertir innerHTML d'un contenteditable texte à la normale de la chaîne

- Je utiliser un contenu modifiable par l'élément :

<span id="myinput" contenteditable="true">This is editable.</span>

et

document.getElementById('myinput').innerHTML

de lire son contenu à partir de Javascript.

Mais le résultat est le suivant :

  • "blah " => innerHTML = "blah &nbsp "
  • "bonjour\n bonsoir" => innerHTML = "bonjour<br>bonsoir" (Firefox) et innerHTML = "bonjour<div>bonsoir</div>" (Chrome)
  • peut-être il ya beaucoup d'autres choses qui sont convertis en HTML...

Comment convertir innerHTML en texte normal?

(c'est à dire dans mes 2 exemples : "blah " et "bonjour\n bonsoir")

Apparemment, vous devez traiter le contenu d'un sous-arbre de l'arbre de document, en extrayant le contenu du texte et insérer des sauts de ligne, selon certaines règles (que vous devez définir). Les détails dépendent en partie sur le utilisation du texte.
C'est partiellement résolu : innerText fonctionne pour tous les navigateurs, sauf Firefox, pour lequel j'ai créé une autre question :stackoverflow.com/questions/25893229/...

OriginalL'auteur Basj | 2014-09-17