2013-03-15 59 views
3

如何获取tinyMCE中的当前插入符号位置?在提到这个问题“Get cursor position or number of line on which the cursor is in TinyMCE”时提到了如何获取tinyMCE中的行号,但是我找不到有关如何获得实际脱字符位置的参考信息?我需要这个,因为我使用tinyMCE作为实时协作的文档,因此我需要知道客户在同一个文档中写入的插入符的位置,以便在某些事件(按键,点击等等)上播放位置。 ),并为一个客户了解其他客户正在编写或编辑的位置上的自定义插文。确切插入位置

我发现的唯一的解决方案是内容后添加一个跨度,将其选中并删除它,如下所示:

 <span id="caret_pos_holder"></span> 

然后,一旦插入,这样做...

 ed.selection.select(ed.dom.select('span#caret_pos_holder')[0]); //select the span 
    ed.dom.remove(ed.dom.select('span#caret_pos_holder')[0]); //remove the span 

是这是唯一的方法吗?

编辑:其实上面只是把光标的位置设置到了内容的末尾,我已经使用过书签了。

有没有可能得到光标的位置?

+0

你期待什么?代表插入位置的单个数字? – 2013-03-15 17:03:42

+0

好的!这正是我所需要的,因为我需要知道在用户正在输入或用鼠标或箭头键移动插入符号时插入符的位置。这似乎几乎不可能! – Bernice 2013-03-15 17:13:56

+0

我不认为一个数字就足够了。也许一个路径到元素?例如'html> body> div:first-child + table> thead:first-child + tbody> tr:first-child + tr> td:first-child + td + td> p:first-child + p> strong:第一个孩子>第53个字符' – biziclop 2013-03-15 17:36:56

回答

0
var sel = ed.selection.getSel(); 

将返回当前选择作为选择对象。然后您可以查询sel.anchorNodesel.anchorOffset以获取当前插入位置。

将这些数据广播到其他客户端会比试图将位置提取为数字更容易,但是如果真的有必要,可以从上面给出的位置爬上DOM。