gpt4 book ai didi

javascript - TinyMCE - 如何可靠地获取在模糊事件之前选择的节点?

转载 作者:行者123 更新时间:2023-11-29 22:13:43 26 4
gpt4 key购买 nike

我正在尝试删除一个空的/挂起的列表项,如果用户在编辑器之外关注时还有一个剩余(例如,如果用户将光标留在 li 内并在编辑器外单击,

  1. 这是我的列表项
  2. 这是我的另一个列表项。

...“3”。列表项应该被删除)

我已经为 onBlur 事件编写了一个事件处理程序,它可以正常触发。它检查 tinymce.activeEditor.selection.getNode() 以查看它是否是 li 节点,如果它不包含任何内容,则将其删除。

这在我的隔离测试环境中运行良好,但在实际应用程序中使用时,tinymce.activeEditor.selection.getNode() 返回一个不同的节点(实际上完全是在编辑器外部),我不能为我的生活弄清楚为什么。也许 TinyMCE 内部的某些东西正在我的 onBlur 事件处理程序触发之前更改“事件节点”,或者类似的东西。

有人有什么想法/建议吗?我真的很难过。

最佳答案

我认为 getNode() 获取父节点。你必须通过 child 搜索。我发现 getContent 给了我关于我选择的节点的信息 (a href)

我确实在某个地方找到了这个搜索代码,但我必须弄清楚如何才能确认选择了哪个 child 。

myParentNode = ed.selection.getNode();
if (myParentNode.nodeName.toLowerCase() == 'a')
{
ed.dom.remove(myParentNode);
}
else
{
var child = myParentNode.firstChild;

while (child)
{
if (child.nodeName.toLowerCase() == 'a')
{
ed.dom.remove(child);
}
child = child.nextSibling;
}

}

关于javascript - TinyMCE - 如何可靠地获取在模糊事件之前选择的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16565778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com