Если я вас правильно понимаю, вы хотите, чтобы кнопка привязывала выделение к целым словам. Если это так, вот как вы можете это сделать:
Демо: http://jsfiddle.net/uCHVQ/1/
Код:
function Selected() {
var sel;
if ((window.getSelection) && (sel = window.getSelection()).modify) {
sel = window.getSelection();
if (!sel.isCollapsed) {
// Detect if selection is backwards
var range = document.createRange();
range.setStart(sel.anchorNode, sel.anchorOffset);
range.setEnd(sel.focusNode, sel.focusOffset);
var backwards = range.collapsed;
range.detach();
// modify() works on the focus of the selection
var endNode = sel.focusNode, endOffset = sel.focusOffset;
sel.collapse(sel.anchorNode, sel.anchorOffset);
if (backwards) {
sel.modify("move", "forward", "word");
sel.extend(endNode, endOffset);
sel.modify("extend", "backward", "word");
} else {
sel.modify("move", "backward", "word");
sel.extend(endNode, endOffset);
sel.modify("extend", "forward", "word");
}
}
}
}
(Кстати, этот код изначально был из того, что я написал? Он выглядит знакомым, но я не могу его найти).