sostituire il testo selezionato in div contenteditable

Ho cercato in alto e in basso per una risposta, ma non è riuscito.

Esiste una soluzione cross-browser per sostituire il testo selezionato in div contenteditable? Voglio semplicemente che gli utenti mettano in evidenza del testo e sostituiscano il testo evidenziato in xxxxx.

Quanto segue farà il lavoro in tutti i principali browser:

function replaceSelectedText(replacementText) { var sel, range; if (window.getSelection) { sel = window.getSelection(); if (sel.rangeCount) { range = sel.getRangeAt(0); range.deleteContents(); range.insertNode(document.createTextNode(replacementText)); } } else if (document.selection && document.selection.createRange) { range = document.selection.createRange(); range.text = replacementText; } }