插入跨度后,TinyMCE移动插入符号

时间:2017-07-28 20:32:03

标签: javascript jquery tinymce caret

我正在使用自定义按钮创建一个TinyMCE插件,该按钮可将<span>test</span>插入当前插入位置。此外,当插入符号位于先前插入的文本中时,再次单击此按钮会删除当前<span>test</span>并将其替换为新插入的<span>test</span>

tinymce.PluginManager.add('test_plugin', function(editor) {
   editor.addButton('test-button', {
      text: 'Insert span',
      onclick: function() {
         var current_node = editor.selection.getNode();

         if(current_node.tagName === 'SPAN') {
            current_node.remove();
         }

         editor.insertContent('<span>test</span>');
      }
   });
});

它工作得很好但插入<span>test</span>之后,插入符号卡在此跨节点中,我无法将其移到此跨度之外。

在末尾添加&#32;(空白)(<span>test</span>&#32;)解决了插入符号的问题,但每次重新插入时都会添加冗余空格。

如何解决卡住问题?

OR

重新插入时如何删除多余的&#32;

1 个答案:

答案 0 :(得分:0)

嗯,听起来很奇怪。 插入跨度后,您可以尝试重置插入符号。这可能有所帮助。

以此格式<span id="my_new_span">test</span>插入范围。

var my_span = ed.getBody().querySelector('#my_new_span');
ed.selection.select(my_span);
ed.selection.getRng(1).collapse(0);

// remove the id attribute
my_span.removeAttribute("id");