我正在尝试删除一个空的/挂起的列表项,如果用户在剩下一个时聚焦在编辑器之外(例如,如果用户将光标留在li
内并点击编辑器外部,
......“3”列表项应该删除)
我为onBlur事件编写了一个事件处理程序,它可以解决问题。它会检查tinymce.activeEditor.selection.getNode()
以查看它是否为li
节点,如果它不包含任何内容,则会将其删除。
这在我的隔离测试环境中运行良好,但在实际应用程序中使用时,tinymce.activeEditor.selection.getNode()
正在返回一个不同的节点(实际上是一个OUTSIDE编辑器),我不能为我的生活找出原因。也许TinyMCE内部的东西在我的onBlur事件处理程序触发之前改变了“主动节点”,或类似的东西。
有人有什么想法/建议吗?我真的很难过。
答案 0 :(得分:2)
我认为getNode()获取父节点。你必须搜索孩子们。 我发现getContent给了我关于我选择的节点(一个href)的信息
我确实找到了这个搜索代码,但我必须弄清楚我将如何确认选择哪个孩子。
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;
}
}