Ceci est une zone délicate. Vous avez besoin de l'objet Selection et DOM Range. Cependant, IE fait tout différemment aux navigateurs appropriés.
Envelopper la sélection à l'intérieur des variables est également non trivial en général: vous devez considérer tous les nœuds de texte dans la sélection.
Ma bibliothèque Rangy normalise l'API Selection/Range pour IE et possède un module to apply a CSS class to a selection, ce qui peut vous aider dans une certaine mesure. Je prévois également d'écrire un module plus général pour appliquer d'autres styles à une sélection/gamme.
Désolé pour l'auto-promotion éhontée, mais à court d'écrire beaucoup de code vous-même, je ne sais pas quoi d'autre à suggérer.
Merci beaucoup pour votre réponse, je dois apprendre plus de manipulation de chaîne javascript. – Zebra