javascript – tinymce.selection.setContent在IE中的textarea开头插入文本

前端之家收集整理的这篇文章主要介绍了javascript – tinymce.selection.setContent在IE中的textarea开头插入文本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经为tinyMCE创建了一个插件,可以使用MathJax在编辑器数学公式中插入.
插件在iframe中打开一个弹出窗口(使用jQuery),然后启动一个触发器事件,以便在tinyMCE活动编辑器中插入输入的公式.

我的代码在Chrome& Firefox(创建一个插入textarea的插入位置的pre),但在IE中,文本插入textarea的开头.

我正在使用这样的setContent方法

tinyMCE.activeEditor.selection.setContent(text to insert,{format: 'bbcode'});

我试图在插入之前使用ed.focus()和在StackOverflow中找到的其他建议,但没有任何对我有用.

此外,我尝试在打开弹出窗口之前保存插入位置,并在插入时恢复它但无论如何都不起作用.

有任何想法吗?

提前致谢.

解决方法

解决了:

我知道这不是最优雅的解决方案,但对我有用.

在打开弹出窗口之前,我插入一个带有特定ID的“span”,如下所示:

var sel = tinyMCE.activeEditor.selection;
sel.setContent('<span id="_math_marker">&nbsp;</span>');

然后,当弹出窗口关闭并且文本被发送回编辑器时,我用标记查找跨度然后我选择它并调用setContent:

var ed = tinyMCE.activeEditor;
var marker = ed.dom.get('_math_marker');
ed.selection.select(marker,false);
ed.selection.setContent("TEXT TO INSERT");

这适用于所有浏览器!如果关闭弹出窗口而不插入任何内容以避免在编辑器中留下垃圾,请记住删除跨度.

原文链接:https://www.f2er.com/js/240923.html

猜你在找的JavaScript相关文章