考虑以下HTML:
<div id="block-container">
<div id="some-background"></div>
<div id="text-div">Focus should be here when this HTML goes into the editor</div>
</div>
我想把插入符号放在text-div中 - 更准确地说是在第一个文本元素中 - 当它在TinyMCE编辑器中打开时。
可以有一种方法可以将类似“.default-focused”的类添加到此类元素中,并根据类设置焦点。有没有其他(通用的)方法来实现这个目标?
我不能采用“.default-focused”的方式: 考虑到我拥有的数据量,添加课程可能是一项艰巨的任务 2.更重要的是,用户可以更改HTML并删除该类。
答案 0 :(得分:1)
好吧,如果你知道放置插入符号的元素,你可以使用这个简短的函数
// sets the cursor to the specified element, ed ist the editor instance
// start defines if the cursor is to be set at the start or at the end
setCursor: function (ed, element, start) {
var doc = ed.getDoc();
if (typeof doc.createRange != "undefined") {
var range = doc.createRange();
range.selectNodeContents(element);
range.collapse(start);
var win = doc.defaultView || doc.parentWindow;
var sel = win.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();
}
},