我已经为tinyMCE创建了一个插件,可以使用MathJax在编辑器数学公式中插入.
此插件在iframe中打开一个弹出窗口(使用jQuery),然后启动一个触发器事件,以便在tinyMCE活动编辑器中插入输入的公式.
此插件在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"> </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