我想在特定的地方自动添加内容到TinyMce编辑器。 为此,我使用以下示例:
首先,您应该在要创建的内容的末尾添加一个范围。 然后插入后,执行此操作...
ed.selection.select(ed.dom.select( '跨度#caret_pos_holder')[0]); //选择范围 ed.dom.remove(ed.dom.select( '跨度#caret_pos_holder')[0]); //删除范围
在这里找到: What's the best way to set cursor/caret position?
这在de Chrome中工作正常但在IE中引发错误
“DOM例外:INDEX_SIZE_ERR(1)”
答案 0 :(得分:1)
这是我使用的功能(位于我自己的一个自定义插件中)
// sets the caret position
// ed is the editor instance
// element is the html element located in the editor
// start defines if the caret should get set to the start of the element (otherwise the end)
setCursor: function (ed, element, start) {
var doc = ed.getDoc();
var edwin = ed.getWin();
if (typeof doc.createRange != "undefined") {
var range = ed.selection.dom.createRng();
range.selectNodeContents(element);
range.collapse(start);
var win = doc.defaultView || doc.parentWindow;
var sel = tinymce.isIE ? doc.selection : edwin.getSelection();
sel.removeAllRanges();
sel.addRange(range);
} else if (typeof doc.body.createTextRange != "undefined") {
var textRange = doc.body.createTextRange();
textRange.moveToElementText(element);
textRange.collapse(start);
textRange.select();
}
},
示例电话:
setCursor(ed, $(ed.getBody()).find('span#caret_pos_holder').get(0), 0);