我正在写一个小插件,在tinymce中添加网格行和列。 它或多或少地正常工作,但TinyMCE坚持在它为空时删除div。我希望我的列和行只能通过按钮控件删除。
我发现了另一个关于SO的问题,这个问题和答案看起来似乎是正确的,但是并没有起作用。
editor.on("keydown",function(e) {
if (e.keyCode == 8 || e.keyCode == 46) {
try {
var elem = editor.selection.getNode();
if (elem.classList.contains("columns") || elem.classList.contains("column") || elem.classList.contains("row")) {
console.log(elem.textContent.length);
if (elem.textContent.length == 0) {
console.log('no content');
e.preventDefault();
return false;
}
}
} catch (e) {}
}
});
它不起作用。如果我将elem.textContent.length更改为== 1.它确实阻止删除最后一个字符,但是如果我将其保留为0则删除列/行并且甚至不会到达console.log。 / p>
答案似乎非常非常接近,但是遥不可及。
非常感谢任何有关如何补救的想法。
答案 0 :(得分:0)
经过多次摆弄后,我设法通过调整上述代码来实现它。
if (elem.textContent.length <= 1) {
e.preventDefault();
jQuery(elem).html('');
}
我认为问题是将textContent.length设置为0为时已晚,所以我需要找到一种方法来定位删除/退格时的第1个字符。因此,我实际上是通过添加空内容来阻止通常的删除和模拟删除。