Javascript TinyMCE 4-获取插入符号位置
我想在Tiny MCE 4中获得插入符号位置,但我不想获得行/列编号-我想获得像素位置(x&y)。它可以与任何事物相关。 最后一件事——我想这样做,而不必在内容中创建任何附加标记,如书签。 TinyMCE有办法做到这一点吗?或者有没有选项可以获取书签的像素位置,然后再删除它 谢谢你的回复好的,我找到了 首先,您必须获得tinymce.Editor类的实例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
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
}