gpt4 book ai didi

javascript - 如何在 GWT RichTextArea 中设置光标位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:55 26 4
gpt4 key购买 nike

有没有办法在 GWT RichTextArea 中设置光标位置。在 TextArea 中有方法 setCusrorPosition() 可以这样做,但在 RichTextArea 中没有。

也许有一个本地 JavaScript(从 GWT 调用)可以在 RichTextArea 中设置光标位置?

最佳答案

你是对的 RichTextArea 没有提供 setSelectionRange 方法,但我已经使用 JSNI 创建了一个方法。

方法如下,

public native void setSelectionRange(Element elem, int pos, int length) /*-{
try {
var selection = null, range2 = null;
var iframeWindow = elem.contentWindow;
var iframeDocument = iframeWindow.document;

selection = iframeWindow.getSelection();
range2 = selection.getRangeAt(0);

//create new range
var range = iframeDocument.createRange();
range.setStart(selection.anchorNode, pos);
range.setEnd(selection.anchorNode, length);

//remove the old range and add the newly created range
if (selection.removeRange) { // Firefox, Opera, IE after version 9
selection.removeRange(range2);
} else {
if (selection.removeAllRanges) { // Safari, Google Chrome
selection.removeAllRanges();
}
}
selection.addRange(range);
} catch (e) {
$wnd.alert(e);
}
}-*/;

使用上面的方法写下面的代码:

final RichTextArea tr = new RichTextArea();
Button b = new Button("Test");
b.addClickHandler(new ClickHandler() {

@Override
public void onClick(ClickEvent event) {
setSelectionRange(tr.getElement(), 15, 20);
tr.setFocus(true);
}
});
RootPanel.get().add(tr);
RootPanel.get().add(b);

注意:请记住将您传递给 setSelectionRange() 方法的“pos”和“length”进行验证检查。此代码已在 IE9、FF、Chrome 中测试。

关于javascript - 如何在 GWT RichTextArea 中设置光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12549739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com