入门
获取 Summernote
安装
基础API
i18n 支持
集成
深入研究
初始化选项
自定义工具栏、弹出窗口
块引号断开级别
自定义样式
自定义字体名称
自定义字体大小单位
自定义行高
自定义占位符
对话框
禁用拖放
禁用快捷键
禁用 TAB
代码视图的 XSS 保护
基础API
字体样式 API
段落 API
插入 API
范围和选择 API
回调
自定义按钮
自定义图标
模块系统
模块
实例
空气模式
带 Bootswatch 的主题
多个编辑器
点击编辑
在线代码编辑器视图
自定义 SVG 图标
提示
插件
范围和选择 API - summernote文档 - 笔下光年
网站首页
范围和选择 API
### saveRange 参考 #saveRange ### restoreRange 参考 #restorerange ### getLastRange Summernote 正在保存当前光标上的范围对象(WrappedRange)。 > ```javascript const rng = $('#summernote').summernote('editor.getLastRange'); ``` **当 summernote 使用 dom 事件保存范围时** - keydown - keyup - focus - mouseup - paste **当 summernote 使用 api 保存范围时** - `editor.insertImage` -> Image - `editor.insertNode` -> Node - `editor.insertText` -> TextNode - `editor.pasteHTML` -> last Node of contents - `editor.insertHorizontalRule` -> next sibling node of hr node - `editor.createLink` -> link node ### setLastRange 您可以在 summernote 可编辑元素的节点中定义自定义范围。 ```javascript const range = $.summernote.range; // range utility // set my custom range $('#summernote').summernote('editor.setLastRange', range.createFromNodeAfter(node).select()); ``` ### range utility ```javascript const range = $.summernote.range; // range utility ``` ### create WrappedRange Object 范围实用程序使 WrappedRange 类的实例。 #### create 从参数或浏览器选择创建 WrappedRange 对象。 ```javascript const rng = range.create(startContainer, startOffset, endContainer, endOffset) // or const rng = range.create() // is equals range.createFromSelection() ``` #### createFromNode 从节点创建 WrappedRange 对象。 ```javascript const rng = range.createFromNode(node) ``` #### createFromNodeBefore 从位置前的节点创建 WrappedRange。 ```javascript const rng = range.createFromNodeBefore(node) ``` #### createFromNodeAfter 从位置后的节点创建 WrappedRange。 ```javascript const rng = range.createFromNodeAfter(node) ``` #### createFromSelection 从选区创建 WrappedRange 对象。 ```javascript const rng = range.createFromSelection(node) ``` ### WrappedRange Object #### eselect() 选择更新可见范围。 ```javascript rng.select() ``` #### collapse(isCollapseToStart) ```javascript const newRng = rng.collapse(true); // to start rng or const newRng = rng.collapse(); // to end rng ``` #### splitText() 范围内的 `splitText`。 ```javascript const textRng = rng.splitText() ``` #### deleteContents() 删除范围内的内容。 ```javascript const newRng = rng.deleteContents() ``` #### isCollapsed() 返回范围是否被折叠。 ```javascript const isCollapsed = rng.isCollapsed() ``` #### wrapBodyInlineWithPara() 用段落将 `body` 的子节点换行。 ```javascript const newRng = rng.wrapBodyInlineWithPara() ``` #### insertNode(node) 在当前光标处插入节点。 ```javascript const node = rng.insertNode(document.createElement('div')) ``` #### pasteHTML(markup) 在当前光标处插入 html。 ```javascript const nodes = rng.pasteHTML(`<div>summernote</div>`) ``` #### toString() 返回范围内的文本。 #### getWordRange(findAfter) 返回光标前(或后)字的范围。 ```javascript const newRng = rng.getWordRange(); // before cursor // or const newRng = rng.getWordRange(true); // after cursor ``` #### getWordsMatchRange(regex) 返回光标前与 Regex 匹配的字词范围 ```javascript // range : 'hi @Peter Pan' const rng = range.create() // or $('.summernote').summernote('getLastRange'); const newRng = rng.getWordsMatchRange(/@[a-z ]+/i) console.log(newRng.toString()) // '@Peter Pan' ``` #### getClientRects() 返回一个 DOMRect 对象列表,该列表表示范围所占屏幕的区域。 > **Range.getClientRects()** https://developer.mozilla.org/en-US/docs/Web/API/Range/getClientRects
上一篇:
插入 API
下一篇:
回调