在当前位置TINYMCE IE9插入文本

在当前位置TINYMCE IE9插入文本,tinymce,internet-explorer-9,Tinymce,Internet Explorer 9,如何在当前位置将文本插入tinyMce编辑器。 它在Chrome、FF、Safari中工作得非常完美,但在IE中,它总是从文本区域的顶部开始。 我目前正在做以下工作: tinyMCE.execCommand('mceInsertContent',false, 'blabla this is tekst'); 我试过使用focus和其他命令,但没有任何效果:(。在IE9中有一个打开的链接 将光标放在文本区域中所需的位置,然后单击tinyMCE第三行的最后一个图标(红十字) 希望能有帮助!!:)

如何在当前位置将文本插入tinyMce编辑器。 它在Chrome、FF、Safari中工作得非常完美,但在IE中,它总是从文本区域的顶部开始。 我目前正在做以下工作:

tinyMCE.execCommand('mceInsertContent',false, 'blabla this is tekst');
我试过使用focus和其他命令,但没有任何效果:(。

在IE9中有一个打开的链接

将光标放在文本区域中所需的位置,然后单击tinyMCE第三行的最后一个图标(红十字)

希望能有帮助!!:)

根据您的评论,单击tinymce编辑器外部的按钮(单击我)。
再次检查。您可以使用此方法解决问题。初始化tinymce时,将设置参数设置为以下值(在
tinymce.init({…})内)

现在,您需要在使用mceinsercontent命令插入新内容之前重置tinymce插入符号位置:

tinymce.get('your_editor_id').selection.moveToBookmark(actual_caret_position_bookmark);

谢谢你的帮助,但没有任何效果。我找到了自己的解决方案,我觉得有必要分享这些,因为我只找到了过时的解决方案,但没有效果:(

解决方案:

在TinyMCE init中添加以下代码:

    tinyMCE.init({
// General options
        elements: elementid,
        setup: function (ed) {
            ed.onKeyUp.add(function (ed, e) {
                actualCaretPositionBookmark = tinyMCE.activeEditor.selection.getBookmark();
            });
            ed.onClick.add(function (ed, e) {
                actualCaretPositionBookmark = tinyMCE.activeEditor.selection.getBookmark();
            }); 
        }
其中,“ActualCartPositionBookmark”是javascript中的一个全局变量,可由所有javascript代码访问

然后,当您希望通过javascript将文本添加到TinyMCE编辑器中时,请添加以下代码:

                if (tinymce.isIE) {
                tinyMCE.activeEditor.selection.moveToBookmark(actualCaretPositionBookmark);
                tinyMCE.execCommand('mceInsertContent',false, 'My new text'); 

            }else {
                tinyMCE.execCommand('insertHTML',false, 'My new text'); 
            }

不久前我也遇到了同样的问题,我有一个插件使用了一个模式弹出窗口,也使用了上述相同的方法:

tinyMCE.execCommand('mceInsertContent',false, 'blabla this is tekst'); 
在IE9中,文本插入顶部。在我的例子中,使用插入符号的问题是,发生了一些奇怪的事情(退格删除中断),因此我检查了嵌入在我使用的tinyMCE发行版中的smileys插件的代码。我找到的解决方案是使用TinyMCEPopup对象,如下所示:

tinyMCEPopup.execCommand('mceInsertContent', false, 'blabla this is tekst');

注意。

如果在同一页面中有多个编辑器,您可以尝试此方法


tinymce.get('content_id').execCommand('mceInsertContent',false,'content to inserted');
它通过工具栏按钮工作,但我的按钮不是TinyMce,它是一个自制的边栏,当我从那里触发事件时,新内容总是写在编辑器的顶部。原因是当我单击外部按钮时,IE中的光标消失了,它只是将内容添加到编辑器中,我需要保存光标位置?试试c在IE9tinymce.get('your_editor_id')中单击按钮旁边,然后单击按钮。selection.getBookmark(2,true)始终是未定义的(我使用正确的id)。此外,如果我使用inymce.activeEditor.selection.getBookmark(2,true),则项目未定义。当然,任何id之前都需要有一个选择(编辑器中的插入符号用于获取有效书签)由于onKeyUp和getBookmark(),我在IE9中的tiny中有一些奇怪的行为。onKeyPress比onKeyUp工作得更好:)你节省了我的时间。谢谢:)出色的解决方案。我在addCommand方法中添加了对getBookmark的调用,这意味着无论用户如何启动操作,它都会自动运行。为我节省了很多时间。谢谢。
tinyMCEPopup.execCommand('mceInsertContent', false, 'blabla this is tekst');