假设我已经使用range.expand('word')
. 通常要添加下一个单词,我会写range.moveEnd('word', 1)
. 但这似乎不适用于 Webkit。也许它应该以不同的方式实施?
问问题
1319 次
1 回答
3
你说的是TextRange
s,它只在 IE 中完全实现。其他浏览器使用DOM Level 2 Range对象代替,虽然在大多数方面都大大优于 TextRanges,但它没有等效于基于文本的方法,例如expand()
. 然而,最近的 WebKit 浏览器确实实现了一个版本,expand()
并且 Webkit 和 Firefox 4 都具有提供类似功能modify()
的对象的方法。Selection
示例:http: //jsfiddle.net/bzU22/1/
<script type="text/javascript">
function expandSelection() {
if (window.getSelection && window.getSelection().modify) {
var sel = window.getSelection();
sel.modify("extend", "forward", "word");
} else if (document.selection && document.selection.type == "Text") {
var range = document.selection.createRange();
range.moveEnd("word", 1);
range.select();
}
document.getElementById("test").focus();
}
</script>
<input type="button" unselectable onclick="expandSelection();" value="Expand">
<p contenteditable="true" id="test">Hello, this is some test text.
Select a word and then press the 'Expand' button.</p>
于 2011-01-17T01:02:57.033 回答