Des éditeurs WYSIWYG il en existe à la pelle, recherche sur
Google pour trouver ton bonheur. Tu pourras faire ton choix parmi des mastodontes comme
FCKeditor, ou des projets un peu plus modestes comme
MooEditable (mon petit coup de coeur, mais nécessite
Mootools).
Après si tu as envie de te lancer dans l'aventure de le code par toi même pourquoi pas, mais c'est relativement très mal documenté. Il s'agit d'utiliser des propriétés nommées
designMode et
contentEditable en Javascript dans mes souvenirs, mais pour l'avoir fait moi même je peux te certifier que c'est une vraie galère.
Sinon pour ce qui est de la sélection du texte je te conseil de passer par un
Framework, je te conseil
Mootools puisque c'est celui que j'utilise et que je sais qu'il permet de la manipulation de
Range (sélection de texte) facilement (
http://mootools.net/docs/more/Element/Element.Forms). De plus tu pourras utiliser
MooEditable comme ça
