Expand to word boundary.
Shows an extremely naive way to expand selection to word boundaries.
HTML
<script src="http://rangy.googlecode.com/svn/trunk/dev/uncompressed/rangy-core.js"></script>
<p id="q" contenteditable="true">Example text with <b>stu</b>ff and more stuff</p>
<button id="expand">Expand</button>
JavaScript
var $q = $("#q");
var $expand = $("#expand");
var word_sep = " ";
function expand() {
var sel = rangy.getSelection();
var range = sel.getRangeAt(0);
var start_node = range.startContainer;
if (start_node.nodeType === Node.TEXT_NODE) {
var sep_at = start_node.nodeValue.lastIndexOf(word_sep, range.startOffset);
range.setStart(start_node, (sep_at !== -1) ? sep_at + 1 : 0);
}
var end_node = range.endContainer;
if (end_node.nodeType === Node.TEXT_NODE) {
var sep_at = end_node.nodeValue.indexOf(word_sep, range.endOffset);
range.setEnd(end_node, (sep_at !== -1) ? sep_at : range.endContainer.nodeValue.length);
}
sel.setSingleRange(range);
}
$expand.click(expand);