FineAdmin.Web/Content/lib/wangEditor/src/js/selection/index.js

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/*
    selection range API
*/

import $ from '../util/dom-core.js'
import { UA } from '../util/util.js'

// 构造函数
function API(editor) {
    this.editor = editor
    this._currentRange = null
}

// 修改原型
API.prototype = {
    constructor: API,

    // 获取 range 对象
    getRange: function () {
        return this._currentRange
    },

    // 保存选区
    saveRange: function (_range) {
        if (_range) {
            // 保存已有选区
            this._currentRange = _range
            return
        }

        // 获取当前的选区
        const selection = window.getSelection()
        if (selection.rangeCount === 0) {
            return
        }
        const range = selection.getRangeAt(0)

        // 判断选区内容是否在编辑内容之内
        const $containerElem = this.getSelectionContainerElem(range)
        if (!$containerElem) {
            return
        }

        // 判断选区内容是否在不可编辑区域之内
        if ($containerElem.attr('contenteditable') === 'false' || $containerElem.parentUntil('[contenteditable=false]')) {
            return
        }

        const editor = this.editor
        const $textElem = editor.$textElem
        if ($textElem.isContain($containerElem)) {
            // 是编辑内容之内的
            this._currentRange = range
        }
    },

    // 折叠选区
    collapseRange: function (toStart) {
        if (toStart == null) {
            // 默认为 false
后面还有 132 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。