我看了What's the best way to set cursor/caret position?
并尝试了那里提到的所有内容,但这些解决方案都不适合我。
我在Tinymce外面有一个自定义工具栏。
所以,当我点击我执行的下拉列表时执行editor.formatter.apply('h1')(注意我在执行此操作时在编辑器外单击,因此它失去了焦点)插入符号不再出现在编辑器(这是预期的行为)。
现在,我想在应用新格式后恢复插入符号。我试过了:
// I get the editor from the array for the example
var editor = tinymce.editors[0];
var range = editor.selection.getRng();
var node = range.startContainer;
range.setStart(node, 1);
range.setEnd(node, 1);
editor.selection.setRng(range);
editor.nodeChanged();
editor.focus();
它不起作用。
如果我为setStart和setEnd函数设置了不同的偏移量,我会看到所选的文本,但是我找不到在编辑器中显示插入符/光标的解决方案。有了这个我的意思是恢复光标,就像你点击一个单词开始输入。
这就是我上面所说的:
range.setStart(node, 1);
range.setStart(node, 3);