如何从GWT中的RichTextArea获取游标位置或位置?
我想从RichTextArea获取光标位置或位置。 我不知道如何得到当前的光标位置没有任何鼠标事件。 例如TextArea具有方法getCursorPos(),但RichTextArea不具有像TextArea一样的方法。 任何人有任何想法? 请帮帮我...
提前致谢...
如果您想在光标位置的RichTextArea中插入某些内容,可以使用格式化程序完成:
RichTextArea.Formatter formatter = richText.getFormatter();
formatter.insertHTML("My text is inserted at the cursor position");
要使用JavaScript查找光标位置,请尝试Tim Down提出的解决方案:
获取范围的开始和结束偏移量相对于其父容器
在Vaadin 7.5 @AndreiVolgin答案似乎不起作用。 但是如果有人只想在光标位置粘贴一些文本,那么Vaadin插件的CKEditor包装可能会有所帮助(链接)。
这是一个后人的例子:
CKEditorTextField textArea;
// and for example in some listener function we could call:
textArea.insertHtml("<b>some html</b>");
textArea.insertText("sample text");
不知道这是否仍然需要,但我今天一直在尝试做同样的事情,并且无法真正找到明确的答案。 我确实发现了这个非GWT解决方案(在包含HTML内容的contentEditable区域中获取插入(光标)位置),这需要略微调整。 希望这可以帮助某人。
public static native int getCursor(Element elem) /*-{
var node = elem.contentWindow.document.body
var range = elem.contentWindow.getSelection().getRangeAt(0);
var treeWalker = $doc.createTreeWalker(node, NodeFilter.SHOW_TEXT, function(node) {
var nodeRange = $doc.createRange();
nodeRange.selectNodeContents(node);
return nodeRange.compareBoundaryPoints(Range.END_TO_END, range) < 1 ? NodeFilter.FILTER_ACCEPT
: NodeFilter.FILTER_REJECT;
}, false);
var charCount = 0;
while (treeWalker.nextNode()) {
charCount += treeWalker.currentNode.length;
}
if (range.startContainer.nodeType == 3) {
charCount += range.startOffset;
}
return charCount;
}-*/;
链接地址: http://www.djcxy.com/p/11225.html
上一篇: How to get cursor position or location from RichTextArea in GWT?