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

2023-12-22

有没有办法在 GWT RichTextArea 中设置 cusror 位置。在 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);

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 GWT RichTextArea 中设置光标位置 的相关文章

  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • ReactCSSTransitionGroup 组件WillLeave 未调用

    我尝试使用 ReactCssTransition 但不知何故该事件没有被调用 componentWillLeave 这是我的组件 import React Component from react import TransitionGrou
  • 带有 mkdocs 的本地 mathjax

    我想在无法访问互联网的计算机上使用 MathJax 和 Mkdocs 因此我不能只调用 Mathjax CDN Config mkdocs yml site name My Docs extra javascript javascripts
  • Firebase 身份验证在 iOS 登录时卡住,没有错误

    我已经使用电子邮件和密码设置了 firebase 身份验证登录的最基本实现 firebase auth signInWithEmailAndPassword email password then gt console log Logged
  • 类型“void”不可分配给类型“((event:MouseEvent) => void) |不明确的'

    import as React from react import App css import PageTwo from components PageTwo export interface IPropsk data Array
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 将 onclick 事件应用于页面加载时不存在的元素

    我将列表样式设置为看起来像选择框 并且当用户单击列表中的元素时我想触发一个函数 但是该元素是通过加载的AJAX因此 当页面加载并且我无法绑定时不存在onclick事件到它onDomReady 如果我把它作为一个普通的选择列表 我可以只标记一
  • JavaScript Promise 不执行 .then()

    我在 JavaScript 中的 Promise 方面遇到了一些问题 我想做的是获得一个地址列表 然后对于每个地址 我需要调用地理编码 API 来获取 lat lng 然后我将继续将标记与热图一起绘制 这是我的代码 let promiseK
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • JavaScript 中的实时摩尔斯电码转换器

    在看到谷歌关于莫尔斯电码 gmail 的愚人节笑话后 我想我应该尝试用 javascript 创建一个实时莫尔斯电码转换器 我正在使用正则表达式和替换将莫尔斯电码更改为字符 例如 replace g a replace g r 我遇到的问题
  • 如何在 Maven 中显示消息

    如何在 Maven 中显示消息 在ant中 我们确实有 echo 来显示消息 但是在maven中 我该怎么做呢 您可以使用 antrun 插件
  • Outlook 加载项,无法读取未定义的属性“BeginRequestEventArgs”

    我使用 Visual Studio 开发了 Outlook 插件 我的插件有一个按钮 用于填充会议邀请正文中的详细信息并添加所需的与会者 这在 99 的情况下都有效 但是 时不时地它会给我下面的 JavaScript 错误 Uncaught
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • android Accessibility-service 突然停止触发事件

    我有一个 AccessibilityService 工作正常 但由于开发过程中的某些原因它停止工作 我似乎找不到这个原因 请看一下我的代码并告诉我为什么它不起作用 public class MyServicee extends Access
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • 具有固定顶部菜单的语义 UI 侧边栏

    Semantic UI 对其进行预警侧边栏页面 http semantic ui com modules sidebar html usage 当侧边栏出现时 固定位置内容可能会出现改变其位置的问题 然后它提供了该问题的两种可能的解决方案

随机推荐

  • 会话 Cookie 与持久 Cookie

    我了解持久 cookie 与会话 cookie 的正常应用 但是 如果您可以指定会话 cookie 的过期时间 使其表现得像持久 cookie 反之亦然 除了对用户进行混淆并将会话存储在服务器上之外 使用会话 cookie 是否还有其他好处
  • window.opener 为 null(iOS 12.3.1 Safari 和 Chrome)

    有一个target blank关联 链接页面中的脚本使用window opener 这已经工作了很多年 但现在它在 iOS 上被破坏了 因为window opener is null 我能做些什么 有很多旧的 一些very旧 window
  • 是否可以在 C# 中创建一个新的运算符?

    我知道你可以重载现有的运算符 我想知道是否可以创建一个新的运算符 这是我的场景 我要这个 var x y lt z y z 相当于 var x y
  • 从 Stripe 账户转账到其他账户

    我用它来向连接的帐户收费 然后将钱发送到另一个帐户 但我不断收到此错误消息 我不断收到此错误消息 您不能提供destination向连接的帐户收费时 return stripe charges create amount 1000 curr
  • VueJS:如何滚动 v-list-title

    使用 v list 制作列表屏幕时 我卡住了滚动 v list title 项目 我正在使用 VueJS 和 vuetifyjs 我的代码片段如下 https codepen io badsaarow pen aaRaxe editors
  • 如何直接从测试驱动程序调用自定义 Django manage.py 命令?

    我想为 Django manage py 命令编写一个单元测试 该命令对数据库表执行后端操作 如何直接从代码调用管理命令 我不想从tests py 在操作系统的shell 上执行命令 因为我无法使用使用manage py test 设置的测
  • 更改 Alembic 中的主键?

    我已读完the docs http alembic readthedocs org en latest ops html 但我在任何地方都找不到这方面的说明 我尝试删除旧密钥并添加新密钥 但这会导致错误 op drop constraint
  • Pandas:根据行值删除重复项

    我有一个数据框 我想根据不同的条件删除重复项 A B 0 1 1 0 1 1 1 0 2 2 2 0 3 2 2 0 4 3 3 0 5 4 4 0 6 5 5 0 7 5 1 8 5 1 9 5 3 我想删除 A 列中除带有 的行之外的所
  • 返回带有 ember-data find() 和多个参数的单个记录

    我正在尝试对除 id 之外的其他参数 实际上是两个参数 进行查找 使用 ember data 但我得到的只是 Uncaught Error assertion failed Your server returned a hash with
  • HTML 表单上的默认提交按钮是如何确定的?

    如果提交表单但未通过任何特定按钮提交 例如 by pressing Enter using HTMLFormElement submit in JS 浏览器如何确定使用多个提交按钮 如果有 中的哪一个作为按下的按钮 这在两个层面上具有重要意
  • TabLayout选项卡样式

    我用新的TabLayout from com android support design图书馆 我想更改选定 未选定选项卡的背景 我查看来源 只发现tabBackground更改所有选项卡颜色但不控制选定选项卡颜色的属性 如何控制选定 未
  • 检查 INTENT 互联网连接

    有安卓的吗Intent ACTION XXX当互联网连接可用时通知我 我想实例化一个BroadcastReceiver当用户启用互联网连接 通过 wifi GSM 等 时通知我的应用程序 有人可以帮助我吗
  • 我如何知道我正在使用什么 CLR?

    是否有信息可以告诉我正在使用的 NET 版本以及它是否是 NET 2 0 SP1 Thanks 您可以使用Environment Version http msdn microsoft com en us library system en
  • 如何使用 Vaadin CDI 和 Navigator 实现 MVP?

    我想使用 Vaadin 在我的 Web 应用程序中实现 MVP 模式 我正在使用 Vaadin Navigator 和 CDIViewProvider 如下所示 MyUI java public class MyUI extends UI
  • 如何在 Linux 中重新定义 malloc() 以在 C++ new 中使用

    我为我定义了 mem malloc 和 mem free 我想用它们来替换 malloc 和 free 以及 C 的 new 和 delete 我将它们定义如下 extern C extern void mem malloc size t
  • 将 s3 上的多个 zip 文件合并为更少的 zip 文件

    我们遇到一个问题 其中 s3 目录中的某些文件的大小约为 500MiB 但许多其他文件的大小为 KiB 和字节 我想将所有小文件合并成更少的大约 500MiB 的大文件 在 s3 文件夹中重写数据的最有效方法是什么 而不必下载 在本地合并并
  • 如何获取 ADF2 中动态内容中一个月的最后一天?

    我想根据 utcnow 时间戳获取一个月的最后一天 下面表达式中的 dd 应该自动为该月的最后一天 28 30 或 31 formatDateTime adddays utcnow 2 yyyy MM ddT23 59 59 999 考虑到
  • 如何使用 CNContactPickerViewController 使用一组电话号码来过滤联系人?

    我尝试使用一组现有电话号码从地址簿中过滤一些联系人 CNContactPickerViewController当这些联系人的电话号码与现有电话号码匹配时 应禁止选择这些联系人 我需要使用电话号码作为过滤器 因为这些电话号码可能来自其他应用程
  • 如何从使用ajax的javascript函数获取值

    我正在调用一个使用 ajax 获取值的函数 如何将该值返回给调用函数 我的ajax调用函数是 function getStatusOfAdv advID ajax url baseURL admin advertisers get adv
  • 如何在 GWT RichTextArea 中设置光标位置

    有没有办法在 GWT RichTextArea 中设置 cusror 位置 在 TextArea 中有 setCusrorPosition 方法可以执行此操作 但在 RichTextArea 中则没有 也许有一个本机 JavaScript