Javascript TinyMCE 4-获取插入符号位置

Javascript TinyMCE 4-获取插入符号位置,javascript,tinymce,editor,tinymce-4,Javascript,Tinymce,Editor,Tinymce 4,我想在Tiny MCE 4中获得插入符号位置,但我不想获得行/列编号-我想获得像素位置(x&y)。它可以与任何事物相关。 最后一件事——我想这样做,而不必在内容中创建任何附加标记,如书签。 TinyMCE有办法做到这一点吗?或者有没有选项可以获取书签的像素位置,然后再删除它 谢谢你的回复好的,我找到了 首先,您必须获得tinymce.Editor类的实例var Editor=new tinymce.Editor()//或者另一种方式,比如tinyMCE.activeEditor 下一步使用jQu

我想在Tiny MCE 4中获得插入符号位置,但我不想获得行/列编号-我想获得像素位置(x&y)。它可以与任何事物相关。 最后一件事——我想这样做,而不必在内容中创建任何附加标记,如书签。 TinyMCE有办法做到这一点吗?或者有没有选项可以获取书签的像素位置,然后再删除它

谢谢你的回复好的,我找到了

首先,您必须获得tinymce.Editor类的实例
var Editor=new tinymce.Editor()//或者另一种方式,比如tinyMCE.activeEditor

下一步使用jQuery获取tinyMCE小部件的位置:

var tinymcePosition = $(editor.getContainer()).position();
var toolbarPosition = $(editor.getContainer()).find(".mce-toolbar").first();
现在获取当前正在编辑的HTML节点的位置:

var nodePosition = $(editor.selection.getNode()).position();
var textareaTop = 0;
var textareaLeft = 0;
我们有Y轴位置(通过
nodePosition.top
),现在是获取X:

if (editor.selection.getRng().getClientRects().length > 0) {
    textareaTop = editor.selection.getRng().getClientRects()[0].top + editor.selection.getRng().getClientRects()[0].height;
    textareaLeft = editor.selection.getRng().getClientRects()[0].left;
} else {
    textareaTop = parseInt($($this.selection.getNode()).css("font-size")) * 1.3 + nodePosition.top;
    textareaLeft = nodePosition.left;
}
我们在
textareaTop&&textareaLeft
中有插入符号相对于TinyMCE编辑器窗口(textarea)的位置。现在是获取相对于整个页面(浏览器窗口)的位置的时候了:


解决方案基于,我在TinyMCE 4中根据自己的需要进行了调整

我想在这一行:
textareaTop=parseInt($($this.selection.getNode()).css(“font size”)*1.3+nodePosition.top
$this.selection
应该是
editor.selection
(这在我使用代码时修复了一个JS)@EvilDr是的,你是对的。这是我对jQuery的回退,我忘记了将
$This
替换到
编辑器中。
var position = $(editor.getContainer()).offset();
var caretPosition = {
    top:  tinymcePosition.top + toolbarPosition.innerHeight() + textareaTop,
    left: tinymcePosition.left + textareaLeft + position.left
}