Yes. In all browsers you can get one or more Range
s or a TextRange
from the user's selection, and both Range
and TextRange
have methods for changing the contents of the range.
UPDATE
You can set the user's selection by creating a Range
and adding it to the Selection
object in most browsers and by creating a TextRange
and calling its select()
method in IE <= 8.
For example, to set the selection to encompass the contents of an element:
function selectElementContents(el) {
if (window.getSelection && document.createRange) {
var sel = window.getSelection();
var range = document.createRange();
range.selectNodeContents(el);
sel.removeAllRanges();
sel.addRange(range);
} else if (document.selection && document.body.createTextRange) {
var textRange = document.body.createTextRange();
textRange.moveToElementText(el);
textRange.select();
}
}
There are also several methods of the Selection
object that can be used to change the user's selection in non-IE browsers. If you can be more specific about how you want to change the selection then it will be easier to help.