最初是因为textarea
赋值后,focus
光标一直定位到第一个文字的bug,搜之,发现有这样一个API:HTMLInputElement.setSelectionRange,可以设置一个input
元素中的文本选中内容的起始位置和结束位置。
inputElement.setSelectionRange(selectionStart, selectionEnd, [optional] selectionDirection);
参数
selectionStart
被选中的第一个字符的位置。
selectionEnd
被选中的最后一个字符的 下一个 位置。
selectionDirection (可选)
一个指明选择方向的字符串,有"forward","backward"和"none" 3个可选值, 分别表示"从前往后", "从后往前"和"选择方向未知或不重要"。
然后发现了range
对象觉得有点厉害,写个文章学习一下。
Range对象
什么是range
对象?Range表示包含节点和部分文本节点的文档片段。一切有关于户文本选择范围的信息都归range
对象掌管。例如:
但是在浏览器的发展历史中,衍生出了3个功能类似的对象,分别为W3C range
,MOZ selection
,IE textRange
。
W3C range
range
对象如何来?
Document 对象的 createRange方法创建。
用Selection对象的getRangeAt方法取得。
通过构造函数 Range()。
API
MOZ selection
通过window.selection
获取Seletion对象。
API
IE textRange
实现
可以做一些@
出现用户名称效果和#话题#
,复制时带上自信息。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。