防止Wordpress TinyMCE在退格时删除div

时间:2016-09-01 18:47:24

标签: javascript grid tinymce

我正在写一个小插件,在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>

答案似乎非常非常接近,但是遥不可及。

非常感谢任何有关如何补救的想法。

1 个答案:

答案 0 :(得分:0)

经过多次摆弄后,我设法通过调整上述代码来实现它。

if (elem.textContent.length <= 1) {
    e.preventDefault();
    jQuery(elem).html('');
}

我认为问题是将textContent.length设置为0为时已晚,所以我需要找到一种方法来定位删除/退格时的第1个字符。因此,我实际上是通过添加空内容来阻止通常的删除和模拟删除。