2012-11-15 1113 views
29

我一直试图将文本插入TinyMCE编辑器中的聚焦段落元素(<p>),光标正好在没有运气的地方!在TinyMCE编辑器中插入光标所在的文本

var elem = tinyMCE.activeEditor.dom.get('tinymce'); 
var child = elem.firstChild; 
while (child) { 
    if (child.focused) { 
     $(child).insertAtCaret("some text"); 
    } 
    child = child.nextSibling; 
} 

如果任何人有任何想法如何解决这个问题,我会非常感谢。

+0

查看http://stackoverflow.com/questions/13849115/insert-text-at-current-position-tinymce-ie9 – zhizhideng

回答

68

您应该使用命令mceInsertContent。 请参阅​​。

tinymce.activeEditor.execCommand('mceInsertContent', false, "some text"); 
+0

非常感谢!我一直试图做这两天没有运气! – Ruba

+1

但我需要你的帮助与另一件事!对于IE浏览器,文本总是插在开头!我该怎么办? – Ruba

+1

我对IE7和IE8使用此代码行没有任何问题。而TinyMCE适用于IE6 +。也许你的问题在别处。 – Magus

9

以上答案是好的,但它是值得指出的是,这可以用来插入任何HTML。

例如:

tinymce.activeEditor.execCommand('mceInsertContent', false, " <b>bolded text</b> "); 

将插入在当前光标位置粗体文字。

其他一些有趣的现象:

mceInsertRawHTML也适用,但往往把光标在当前行的开始我的版本TinyMCE的,但情况因人而异。

mceReplaceContent也适用,但在我的情况下,当光标位于当前内容的末尾时效果不佳。

有关更多信息,请参见the documentation

相关问题