我想编写一个tinyMCE插件,允许嵌套sub和sup标签。
现在我写了一个命令,当你按下按钮/点击快捷键时,在光标处插入原始HTML' '。但是,这只有在我可以将光标移动到新标记的中间时才有效。
我似乎无法找到有关如何移动光标的任何文档。有一些建议的黑客,但他们非常hacky。这可能不是那么难,因为据我了解,[b]
和[i]
按钮的工作方式也是如此。
有更好的方法吗?如何编写一个tinyMCE函数,将用户置于“子模式”或“sup模式”并允许它们嵌套“sub”和“sup”模式?
谢谢!
答案 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_elements和valid_elements配置参数。 sub和sup默认情况下不能嵌套!您需要覆盖规则集的这一部分。