选区API

最后更新于:2022-04-01 23:43:08

###选区API 以下是与选择区域有关的API,**下面有些API在IE8、9可能无效,但是不会报错**。 *使用下面的API,最好要了解一下`javascript`的`range`和`selection`的基础知识。如果要兼容IE8、9,还有了解IE8、9特有的`selection`和 `textRange`的知识。* ----- - **`editor.currentRange`** 获取或者设置当前的选中区域,例如 ```js var range = editor.currentRange(); // 获取 editor.currentRange(range); // 设置 ``` ----- - **`editor.collapseRange`** 折叠传入的选区,或者当前选区。例如: ```js editor.collapseRange(); // 折叠当前选区,到结束位置 editor.collapseRange(range); // 折叠传入的选区,到结束位置 editor.collapseRange(null, 'start'); // 折叠当前选区,到开始位置 editor.collapseRange(range, 'start'); // 折叠传入的选区,到开始位置 ``` ----- - **`editor.getRangeText`** 获取当前选区的文字内容,例如 ```js var rangeText = editor.getRangeText(); ``` ----- - **`editor.getRangeElem`** 获取当前选区所在的容器元素,不会是`text node`,而是`elem node`。例如 ```js var elem = editor.getRangeElem(); ``` ----- - **`editor.isRangeEmpty`** 判断当前选区有没有选中文字内容。**说明:如果鼠标拖拽选择了若干个文字,那就是有选中内容;如果鼠标点击了某个地方,为选中文字,只有光标闪烁,那就是无选中内容** ```js if ( editor.isRangeEmpty() ) { console.log('当前选区无选中内容'); } ``` ----- - **`editor.saveSelection`** 将传入的选区对象或者从浏览器捕获的选区,保存为编辑器的当前选区。 ```js editor.saveSelection(); // 捕获浏览器的选区,保存 editor.saveSelection(range); //将传入的选区对象,保存为当前选区 ``` ----- - **`editor.restoreSelection`** 将编辑器的当前选区,或者传入的选区对象,恢复为浏览器能看得见的选择区域。 ```js editor.restoreSelection(); // 恢复当前选区为浏览器的选择区域 editor.restoreSelection(range); // 将传入的选区对象,恢复为浏览器的选择区域 ``` ----- - **`editor.restoreSelectionByElem`** 将传入的`elem`元素,作为选区,恢复为浏览器的选择区域。 ```js // 获取编辑器的最后一个 p 元素 var $p = editor.$txt.find('p').last(); var p = $p.get(0); if (!p) { return; } editor.restoreSelectionByElem(p); // 回复选区至最后一个 p,折叠到结束位置结束位置 editor.restoreSelectionByElem(p, 'start'); // 回复选区至最后一个 p,折叠到结束位置开始位置 ```
';