【问题标题】:tinymce 4 how to put cursor to end of the texttinymce 4 如何将光标放在文本末尾
【发布时间】:2013-11-07 06:09:38
【问题描述】:

由于某种原因,我需要执行:

tinyMCE.activeEditor.setContent(text, {format : 'html'});

之后,如何将光标放在文本的末尾?

【问题讨论】:

  • 你能确认设置整个编辑器的内容是你想要的吗? (您的目标是 activeEditor 而不是 "selection" )并且仅在编辑器为空时才有效,但是在处理现有内容时,您插入的文本将替换整个内容(对于您想要放置的内容没有多大意义放置文本末尾的光标/插入符号,因为很容易找到结尾)

标签: javascript jquery html tinymce text-editor


【解决方案1】:
ed.selection.select(ed.getBody(), true); // ed is the editor instance
ed.selection.collapse(false);

这似乎是彼得伍斯特在线程jQuery Set Cursor Position in Text Area 中回答的

为 TINYMCE 使用编辑:

tinyMCE.activeEditor.selection.select(tinyMCE.activeEditor.getBody(), true);
tinyMCE.activeEditor.selection.collapse(false);

【讨论】:

  • 仅供参考。如果您限制字符输入并使用它在末尾不断设置位置,它将在 Chrome v40 中中断。如果它被调用足够多次,浏览器就会冻结。已在 Windows 7 和 8 上全新安装 Chrome v40 进行测试。尚未找到解决方案。
  • 第二个代码部分在 Chrome 和 FF 中对我有用,仅在之前调用此命令时:tinymce.execCommand('mceFocus',false,'');
  • 我正在使用带有角度的 tinyMCE,当我尝试使用此代码设置光标时,它似乎不起作用。可能它与我的特定环境有关,但我能够通过首先将焦点设置为 来使其工作,然后通过选择和折叠选择来更改光标位置(如此处所述)。所以它看起来像这样:tinyMCE.activeEditor.focus(); tinyMCE.activeEditor.selection.select(tinyMCE.activeEditor.getBody(), true); tinyMCE.activeEditor.selection.collapse(false);
【解决方案2】:

对于 tinyMCE 4+ 更好的使用:

tinyMCE.activeEditor.focus();

【讨论】:

  • .focus 只会将焦点设置到非活动的编辑器,不一定将光标的位置设置到编辑器的末尾。
  • 试过了,只有Firefox才会把光标放在最后。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多