此类用于处理文本和控件选择,它是一个跨浏览器实用程序类。有关此类用法的更多详细信息和示例,请参阅 TinyMCE API 文档。

示例

// 获取当前活动编辑器中选中的节点
alert(tinymce.activeEditor.selection.getNode().nodeName);

概要

构造函数

名称概要定义者

Selection()

构造一个新的 Selection 实例。

Selection

方法

名称概要定义者

collapse()

将选区折叠到范围的起始或结束位置。

Selection

expand()

当选区折叠在单词内时,扩展选区范围以包含整个单词。

Selection

getBookmark()

返回当前选区的书签位置。之后在对文档内容进行某些修改后,可以使用此书签对象恢复选区。

Selection

getContent()

使用传递给此类的 DOM 序列化器返回所选内容。

Selection

getEnd()

返回选区范围的结束元素。如果结束在文本节点中,则将返回父元素。

Selection

getNode()

返回当前选中的元素或选区起始和结束的共同祖先元素。

Selection

getRng()

返回浏览器内部的范围对象。

Selection

getSel()

返回浏览器内部的选择对象。

Selection

getStart()

返回选区范围的起始元素。如果起始在文本节点中,则将返回父元素。

Selection

isCollapsed()

返回选区范围是否折叠。折叠意味着是插入符还是更大的选区。

Selection

isEditable()

检查当前选区的起始和结束容器在其父级上下文中是否可编辑。

Selection

moveToBookmark()

将选区恢复到指定的书签。

Selection

select()

选择指定的元素。这将把选区范围的起始和结束置于该元素周围。

Selection

selectorChanged()

当当前选区开始/停止匹配指定的选择器时执行回调。当前状态将作为第一个参数传递给回调。

Selection

setContent()

此方法已被弃用。请改用 "editor.insertContent"。 将当前选区设置为指定的内容。如果选中了任何内容,则将用传递给此函数的内容替换。如果没有选区,则内容将插入到编辑器/页面中插入符所在的位置。

Selection

setCursorLocation()

将选区光标范围移动到指定的节点和偏移量。如果没有指定节点,则将其移动到主体内的第一个合适位置。

Selection

setNode()

将当前选区设置为指定的 DOM 元素。

Selection

setRng()

将选区更改为指定的 DOM 范围。

Selection

构造函数

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) - 可选布尔值,表示选区是向前还是向后。