document selection心得

选中区常用于文本提示,可视化编辑器。
document.selection指代当前选中区。createRange和createTextRange有什么区别我还没搞明白。
当用户没有选中任何区域时,但是某个元素具有焦点时document.selection.createRange就指代当前焦点,其实也就是空白选中区,在可以获得交点坐标offsetLeft/Top.
否则就是用户选中区的Range,那么textarea.select()后document.selection.createRange就获得了这个textarea的全选文本区。
关于setEndPoint第二个参数还的研究一下,因为

textarea和input type=text的createTextRange()返回的对像类型好像不一样。
input type=text的createTextRange()与document.selection.createRange()得到的对像好像又一至。
textarea的setEndPoint(string,TextRange)中的TextRange不能使用document.selection.createRange()取得的对像
input type=text的setEndPoint(string,TextRange)中的TextRange却可以使用document.selection.createRange()取得的对像
另外,TextRange的moveToElementText()可以textarea做参数,而input type=text却不行。

上面是网上的,我的实际经验是第二个参数必须是document.selection.createRange(),不知道为什么?

moveStart/End 中的第二个参数是相对于当前选中位置,-1表示向前移动一个单位.

另外keydown时间里面处理选中区会有些问题,回车 就被忽略不计了,计算当前光标之前的文本就出了问题,而在keyup事件里面是没有这个问题的。


Total views.

© 2013 - 2018. All rights reserved.

Powered by Hydejack v6.6.1