如何检测何时在CKEditor中删除了伪元素?

如何检测何时在CKEditor中删除了伪元素?,ckeditor,ckeditor4.x,Ckeditor,Ckeditor4.x,我有一个自定义插件,它在工具栏上添加了一个按钮,当用户点击它时,我会创建一个带有特定ID的div,并显示一个带有图标的“伪元素”。这就是我所需要的,而且很有效 我需要将该函数性限制为每篇文章一次。因此,我创建了一个Javascript变量,每次用户单击按钮时该变量都会增加,并在第一次单击后禁用该按钮 但我需要知道用户何时删除伪元素以减少我的变量,再次启用按钮并让他添加另一个 有人知道如何检测伪元素何时被删除吗?在这里保存状态变量不是一个好主意,在重新打开内容以更新现有内容时,您必须检查内容 您可

我有一个自定义插件,它在工具栏上添加了一个按钮,当用户点击它时,我会创建一个带有特定ID的div,并显示一个带有图标的“伪元素”。这就是我所需要的,而且很有效

我需要将该函数性限制为每篇文章一次。因此,我创建了一个Javascript变量,每次用户单击按钮时该变量都会增加,并在第一次单击后禁用该按钮

但我需要知道用户何时删除伪元素以减少我的变量,再次启用按钮并让他添加另一个


有人知道如何检测伪元素何时被删除吗?

在这里保存状态变量不是一个好主意,在重新打开内容以更新现有内容时,您必须检查内容

您可以查找包含
数据cke real element type
属性的对象(注意,您需要向方法提供
realElementType
参数)。例如,使用该功能,您只需调用以下命令,即可轻松找到可编辑文件中的锚伪元素数:

editor.editable().find( '*[data-cke-real-element-type="anchor"]' ).count();
当然,您需要用注册为
realementtype
参数的名称替换
“锚定”


然后,您只需将钩子检查设置为正确。

您可以设置
var-fake\u-element\u-set=true
并进行检查,但如果有人有足够的知识来修改dom以删除元素,那么他们可能有足够的知识将该var设置回false。由于您尝试的任何操作都必须在客户端完成,因此您基本上没有机会正常工作。你必须假设你所做的一切都可以被用户撤销,因为你在他们家里。这不是我的观点。想象一下,我们正在使用一个CKEditor插件,让我在文本区域中插入一个图像,添加一个图像,然后收回并删除它(通过退格键盘)。没有办法检测到这种行为?在这种情况下,我需要检测用户是否删除了我添加的图标,该图标有一个伪元素Sure,但您可能需要在每次按键/工具栏单击时扫描文本区域的内容,以查看您的元素是否仍然存在。