I have a problem with contenteditable div. When i want to execute a simple command (like bold or italic) on it, i do the following:
If the input and contenteditable element are within the same document, you won't be able to prevent the selection in the contenteditable element from being destroyed. However, what you can do is save the selection before the input box receives focus and restore the selection after the dialog is dismissed.
Here is some simple example code:
https://stackoverflow.com/a/3316483/96100
And here's a fuller example:
https://stackoverflow.com/a/4690057/96100
If you place either the input or contenteditable element within a separate iframe, most browsers (although not IE) will preserve the original selection.