TinyMCE移动光标

时间:2010-12-17 22:49:51

标签: javascript tinymce

我想编写一个tinyMCE插件,允许嵌套sub和sup标签。

现在我写了一个命令,当你按下按钮/点击快捷键时,在光标处插入原始HTML' '。但是,这只有在我可以将光标移动到新标记的中间时才有效。

我似乎无法找到有关如何移动光标的任何文档。有一些建议的黑客,但他们非常hacky。这可能不是那么难,因为据我了解,[b][i]按钮的工作方式也是如此。

有更好的方法吗?如何编写一个tinyMCE函数,将用户置于“子模式”或“sup模式”并允许它们嵌套“sub”和“sup”模式?

谢谢!

1 个答案:

答案 0 :(得分:3)

此函数将光标设置为指定的html元素。

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

为了嵌套sups,你需要确保sups和subs可以嵌套。请检查extended_valid_elementsvalid_elements配置参数。 sub和sup默认情况下不能嵌套!您需要覆盖规则集的这一部分。