TinyMCE在文本部分设置焦点

时间:2010-12-19 17:13:05

标签: text tinymce

考虑以下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并删除该类。

1 个答案:

答案 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();
    }
},