如何解决如何在 CKEditor 中捕获将传播到不同 HTML 元素的关键和其他事件?
因此,在 CKEditor 4 中,我需要阻止用户修改给定的 HTML 元素 - 通过删除、在其文本节点上输入/输入、将文本粘贴到其中等方式。
一般来说,如果我有这样的结构:
<span id='myspecialspan'>HERE IS SOME TEXT</span>
...我可以向该跨度添加一个关键侦听器,并捕获事件并阻止它发生。
然而,我经常有这样的结构:
<div>
<span id='myspecialspan'>HERE IS SOME TEXT</span>
</div>
-or-
<div/>
<span id='myspecialspan'>HERE IS SOME TEXT</span>
-or-
<div id='a'>
<div id='b'/>
</div>
<span id='myspecialspan'>HERE IS SOME TEXT</span>
-or-
<div id='a'>
<div id='b'/>
</div>
<div><span id='myspecialspan'>HERE IS SOME TEXT</span></div>
... etc.
在所有这些情况下,当我将光标放在“跨度”前面时触发的事件可能会在任何 div 中触发 - 父级、兄弟级、兄弟级的子级等......但关键事件是作用于 span 元素的文本。 span 元素本身永远不会获取事件,只会获取附近的 DIV(或其他 HTML 元素)。
由于存在无限多种可能性(例如,div 内的 div 内的 div 内的 div 内的跨度等),我将关键侦听器添加到每个附近的元素开始变得荒谬。
我不知道这是否与 CKEditor 处理某些关键事件的方式有关,还是更一般的 HTML/DOM 问题,我正在努力寻找一种方法来保护我的 span 元素无需通过大量的程序化操作来找出“我需要添加侦听器来捕获哪些特定的围绕 DOM 结构的事件,以捕获会导致我的 span 文本中删除的关键事件”。
当然有更好的方法可以为任何给定的 HTML 元素添加“保护”,并在关键事件对其造成损害时获取事件。
有人知道吗?
- 蒂姆
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。