此类用于处理文本和控件选择,它是一个跨浏览器实用程序类。有关此类用法的更多详细信息和示例,请参阅 TinyMCE API 文档。
示例
// 获取当前活动编辑器中选中的节点 alert(tinymce.activeEditor.selection.getNode().nodeName);
概要
构造函数
| 名称 | 概要 | 定义者 |
|---|---|---|
Selection() | 构造一个新的 Selection 实例。 |
|
方法
| 名称 | 概要 | 定义者 |
|---|---|---|
collapse() | 将选区折叠到范围的起始或结束位置。 |
|
expand() | 当选区折叠在单词内时,扩展选区范围以包含整个单词。 |
|
getBookmark() | 返回当前选区的书签位置。之后在对文档内容进行某些修改后,可以使用此书签对象恢复选区。 |
|
getContent() | 使用传递给此类的 DOM 序列化器返回所选内容。 |
|
getEnd() | 返回选区范围的结束元素。如果结束在文本节点中,则将返回父元素。 |
|
getNode() | 返回当前选中的元素或选区起始和结束的共同祖先元素。 |
|
getRng() | 返回浏览器内部的范围对象。 |
|
getSel() | 返回浏览器内部的选择对象。 |
|
getStart() | 返回选区范围的起始元素。如果起始在文本节点中,则将返回父元素。 |
|
isCollapsed() | 返回选区范围是否折叠。折叠意味着是插入符还是更大的选区。 |
|
isEditable() | 检查当前选区的起始和结束容器在其父级上下文中是否可编辑。 |
|
moveToBookmark() | 将选区恢复到指定的书签。 |
|
select() | 选择指定的元素。这将把选区范围的起始和结束置于该元素周围。 |
|
selectorChanged() | 当当前选区开始/停止匹配指定的选择器时执行回调。当前状态将作为第一个参数传递给回调。 |
|
setContent() | 此方法已被弃用。请改用 "editor.insertContent"。 将当前选区设置为指定的内容。如果选中了任何内容,则将用传递给此函数的内容替换。如果没有选区,则内容将插入到编辑器/页面中插入符所在的位置。 |
|
setCursorLocation() | 将选区光标范围移动到指定的节点和偏移量。如果没有指定节点,则将其移动到主体内的第一个合适位置。 |
|
setNode() | 将当前选区设置为指定的 DOM 元素。 |
|
setRng() | 将选区更改为指定的 DOM 范围。 |
|
构造函数
Selection
public constructor function Selection(dom: tinymce.dom.DOMUtils, win: Window, serializer: tinymce.dom.Serializer, editor: tinymce.Editor)
构造一个新的 Selection 实例。
参数
dom (DOMUtils)- DOMUtils 对象引用。win (Window)- 选择对象要绑定到的窗口。serializer (Serializer)- 用于 getContent 的 DOM 序列化类。editor (Editor)- 选择所属的编辑器实例。
方法
collapse()
collapse(toStart: Boolean)
将选区折叠到范围的起始或结束位置。
参数
toStart (Boolean)- 可选布尔状态,指示是否折叠到结束位置。默认值为 false。
expand()
expand(options: Object)
当选区折叠在单词内时,扩展选区范围以包含整个单词。
参数
options (Object)- 提供给扩展的可选选项。默认值为 { type: 'word' }。
getBookmark()
getBookmark(type: Number, normalized: Boolean): Object
返回当前选区的书签位置。这个书签对象随后可用于在对文档进行某些内容修改后恢复选区。
示例
// 存储当前选区的书签 const bm = tinymce.activeEditor.selection.getBookmark(); tinymce.activeEditor.setContent(tinymce.activeEditor.getContent() + 'Some new content'); // 恢复选区书签 tinymce.activeEditor.selection.moveToBookmark(bm);
参数
type (Number)- 可选状态,用于指定书签是否为简单书签。默认为复杂书签。normalized (Boolean)- 可选状态,启用后可以获取经过标准化后的位置。
返回值
Object- 书签对象,使用此对象调用 moveToBookmark 以恢复选区。
getContent()
getContent(args: Object): String
使用传递给此类的 DOM 序列化器返回所选内容。
示例
// 显示当前所选内容
alert(tinymce.activeEditor.selection.getContent());
// 以纯文本格式显示当前所选内容
alert(tinymce.activeEditor.selection.getContent({ format: 'text' }));参数
args (Object)- 可选设置类,例如指定输出格式为 text 或 html。
返回值
String- 所选内容,例如 HTML 格式。
getEnd()
getEnd(real: Boolean): Element
返回选区范围的结束元素。如果结束位置在文本节点中,则返回父元素。
参数
real (Boolean)- 可选状态,当选区折叠时获取真实的父元素而非最接近的元素。
返回值
Element- 选区范围的结束元素。
getNode()
getNode(): Element
返回当前选中的元素或选区起始和结束的共同祖先元素。
示例
// 显示当前所选元素的节点名称 alert(tinymce.activeEditor.selection.getNode().nodeName);
返回值
Element- 当前选中的元素或共同祖先元素。
getRng()
getRng(): Range
返回浏览器内部的 range 对象。
返回值
Range- 浏览器内部的 range 对象。
getSel()
getSel(): Selection
返回浏览器内部的 selection 对象。
返回值
Selection- 浏览器内部的 selection 对象。
getStart()
getStart(real: Boolean): Element
返回选区范围的起始元素。如果起始位置在文本节点中,则返回父元素。
参数
real (Boolean)- 可选状态,当选区折叠时获取真实的父元素而非最接近的元素。
返回值
Element- 选区范围的起始元素。
isCollapsed()
isCollapsed(): Boolean
返回 true/false 以指示选区范围是否折叠。折叠意味着它是插入符还是更大的选区。
返回值
Boolean- true/false 状态,指示选区范围是否折叠。折叠意味着它是插入符还是更大的选区。
isEditable()
isEditable(): Boolean
检查当前选区的起始和结束容器是否在其父元素的上下文中可编辑。
返回值
Boolean- 如果选区可编辑则为 true,否则为 false。
moveToBookmark()
moveToBookmark(bookmark: Object)
将选区恢复到指定的书签。
示例
// 存储当前选区的书签 const bm = tinymce.activeEditor.selection.getBookmark(); tinymce.activeEditor.setContent(tinymce.activeEditor.getContent() + 'Some new content'); // 恢复选区书签 tinymce.activeEditor.selection.moveToBookmark(bm);
参数
bookmark (Object)- 用于恢复选区的书签。
select()
select(node: Element, content: Boolean): Element
选择指定的元素。这将把选区范围的起始和结束位置放置在该元素周围。
示例
// 选择活动编辑器中的第一个段落
tinymce.activeEditor.selection.select(tinymce.activeEditor.dom.select('p')[0]);参数
node (Element)- 要选择的 HTML DOM 元素。content (Boolean)- 可选布尔状态,用于指定是否在非 IE 浏览器上选择内容。
返回值
Element- 选定的元素,与传入的元素相同。
selectorChanged()
selectorChanged(selector: String, callback: Function)
当当前选区开始/停止匹配指定的选择器时执行回调。当前状态将作为第一个参数传递给回调。
参数
selector (String)- 要检查的CSS选择器。callback (Function)- 当选择器匹配或不匹配时的回调函数,包含状态和参数。
setContent()
setContent(content: String, args: Object)
此方法已弃用。请使用"editor.insertContent"代替。
将当前选区设置为指定内容。如果已选择任何内容,它将被替换为传递给此函数的内容。如果没有选区,内容将被插入到编辑器/页面中光标所在的位置。
示例
// 在当前选区插入一些HTML内容
tinymce.activeEditor.selection.setContent('<strong>一些内容</strong>');参数
content (String)- 要设置的HTML内容,根据设置也可能是其他格式。args (Object)- 可选设置对象,例如数据格式。
setCursorLocation()
setCursorLocation(node: Node, offset: Number)
将选区光标范围移动到指定的节点和偏移量。如果未指定节点,它将移动到body内的第一个合适位置。
参数
node (Node)- 可选的要放置光标的节点。offset (Number)- 可选的从节点开始放置光标的偏移量。
setNode()
setNode(elm: Element): Element
将当前选区设置为指定的DOM元素。
示例
// 在当前选区/光标位置插入DOM节点
tinymce.activeEditor.selection.setNode(tinymce.activeEditor.dom.create('img', { src: 'some.gif', title: 'some title' }));参数
elm (Element)- 要设置为选区内容的元素。
返回值
Element- 返回传入的元素。
setRng()
setRng(rng: Range, forward: Boolean)
将选区更改为指定的DOM范围。
参数
rng (Range)- 要选择的范围。forward (Boolean)- 可选布尔值,表示选区是向前还是向后。