编辑区域的事件钩子

是什么

想要监听编辑区域的各种事件回调,如鼠标点击、keyup、粘贴、点击图片、点击链接、滚动等,不用自己写。编辑器内都有定义,并开放使用。

// eventHooks 举例
{
    dropEvents: Function[]
    clickEvents: Function[]
    keyupEvents: Function[]
    tabUpEvents: Function[] // tab 键(keyCode === )Up 时
    tabDownEvents: Function[] // tab 键(keyCode === 9)Down 时
    enterUpEvents: Function[] // enter 键(keyCode === 13)up 时
    deleteUpEvents: Function[] // 删除键(keyCode === 8)up 时
    deleteDownEvents: Function[] // 删除键(keyCode === 8)down 时
    pasteEvents: Function[] // 粘贴事件
    linkClickEvents: Function[] // 点击链接事件
    textScrollEvents: Function[] // 编辑区域滑动事件
    toolbarClickEvents: Function[] // 菜单栏被点击
    imgClickEvents: Function[] // 图片被点击事件
    // 等等……
}

所有 eventHooks 及其内部实现,可以参考源码

如何使用

使用 eventHooks 非常简单,例如链接的 tooltip 源码中就有使用。定义一个函数,push 到相应的 eventHooks 就可以了。

// function showLinkTooltip() { /* 显示 tooltip */ }
// function hideLinkTooltip() { /* 隐藏 tooltip */ }

// 点击链接元素是,显示 tooltip
editor.txt.eventHooks.linkClickEvents.push(showLinkTooltip)

// 点击其他地方,有键盘操作,或者滚动时,隐藏 tooltip
editor.txt.eventHooks.clickEvents.push(hideLinkTooltip)
editor.txt.eventHooks.keyupEvents.push(hideLinkTooltip)
editor.txt.eventHooks.toolbarClickEvents.push(hideLinkTooltip)
editor.txt.eventHooks.textScrollEvents.push(hideLinkTooltip)
Copyright © wangEditor (2020 - present) all right reserved,powered by GitbookFile Modify: 2022-04-11 07:03:47

results matching ""

    No results matching ""