我正在尝试实现一个界面,该界面上有一个Rich Text Editor(RTE)和一个面板,该面板允许用户向RTE中引入某些代码段。

我正在尝试的完全像http://jsfiddle.net/timdown/wPfVn/一样,只是我想使用RTE而不是纯文本区域。

问题是所有RTE都用div和iframe等替换了textarea。像selectStartselectionEnd这样的textarea函数不能用于检测光标位置。

是否有RTE通过我可以使用的API公开这些功能?

如果有人在某些站点上看到过类似的内容,请指向我。也许我可以按Ctrl + U并弄清它们的用途。

解决了:
感谢Magus的回答。可以使用TinyMCE编辑器。它具有选择和selection.bookmarks的概念。这是您可以获得结果的方法。

tinyMCE.init({
    mode : "exact",
    elements: "notifierBody",
});
$('.insertBtn').click(function(){
    // Stores a bookmark of the current selection
    var bm = tinyMCE.activeEditor.selection.getBookmark();
    // Restore the selection bookmark. In effect, takes the control that the bookmark
    tinyMCE.activeEditor.selection.moveToBookmark(bm);
    //Add new content right in the middle where your cursor/selection was
    tinyMCE.activeEditor.selection.setContent('Some new content');
});

最佳答案

TinyMCE为当前选择提供了一些API。查看文档:http://www.tinymce.com/wiki.php/API3:class.tinymce.dom.Selection

一个小例子:

tinyMce.activeEditor.selection.getContent({format : 'raw'}); // Get the selected text
tinyMce.activeEditor.selection.getStart(); // Selection start
tinyMce.activeEditor.selection.getEnd(); // Selection end


我认为许多RTE都提供此功能。您只需要查看API文档。

08-04 12:24