每当按下光标或箭头键时,如何获取当前光标位置(在文本区域中)?

2024-01-08

我试图单击一下后立即获取文本光标的位置down鼠标重新定位它。问题是selectionStart and selectionEnd不返回光标的最新位置,因为在单击之前不会存储“新”位置released。当您尝试使用鼠标重新定位插入符号时,代码片段会显示此问题。

这很奇怪,因为从技术上讲,只要单击鼠标,我就可以在“新”位置键入内容,但是selectionStart仍然返回旧位置。如果光标位置可以明显改变而不需要释放点击,那么如何访问新位置而不必等待mouseup?

(这似乎也是在按键后跟踪光标位置的问题)

const input = document.getElementById('myInput');
input.addEventListener('mousedown', showposition); // click

function showposition() {
  document.getElementById("output").innerHTML += " " + input.selectionStart;
}
<input id="myInput">
<p id="output"></p>

Use the click事件而不是mousedown事件。这是因为,当 mousedown 事件被触发时,selectionStart不会更新,这就是为什么您不断获取以前的值的原因。

另一方面,点击事件是以下的组合mouseup + mousedown该事件捕获一次完整的鼠标单击并返回预期的光标位置值。

const input = document.getElementById('myInput');
input.addEventListener('click', showposition); // click

function showposition(event) {
  document.getElementById("output").innerHTML += " " + event.target.selectionStart;
}
<input id="myInput">
<p id="output"></p>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每当按下光标或箭头键时,如何获取当前光标位置(在文本区域中)? 的相关文章

随机推荐

  • Java一直提示找不到jdbc mysql驱动

    这里还有一个关于jdbc的mysql驱动的问题 考虑到我在谷歌搜索时得到的搜索结果的数量 我很遗憾在其中没有发现任何对我有用的结果 错误 hostname java cp usr share java mysql connector jar
  • 使用 select 插入多行

    我正在尝试将 2 行插入同一个表中 第一个将从选择中输入数据 第二个将使用变量作为数据 我可以插入第一行 但插入多行时遇到问题 partner id 用于将行相互链接 为此 我使用 php 中生成的 32char 值 无论如何 是否可以使用
  • 并行减少(例如求和) hpx::futures 向量

    我们目前正在尝试实现用于数值模拟的红黑高斯 赛德尔求解器 为此 我们将模拟区域划分为大小相等的子网格 我们能够在每个子网格上异步执行压力方程的红黑循环 并具有正确的依赖性和hpx dataflow目的 但现在我们有以下问题 每第 n 个循环
  • 如何停止 Firestore 对 componentWillUnmount 的“get”查询

    好的 我正在从 Firestore 中的 componentDidMount 中获取数据 但是在获取数据时 如果我更改组件 则会收到错误消息 警告 无法在未安装的状态下调用 setState 或forceUpdate 成分 这是一个空操作
  • 如何在 Kotlin 中使用另一个类的变量?

    我只是有一个 希望如此 简单的问题 如何在一个类中创建一个变量可以被 Kotlin 中的另一个类访问 A类 var isBlue 1 Class B if isBlue 1 then class A class A var isBlue 1
  • 升级从自己的网络服务器下载的 apk

    我需要升级 apk 文件的帮助 我有为 android 2 2 开发的 apk 文件 但我不想在 android 市场上发布我的 apk 我在我们自己的网络服务器中发布了 apk 我可以将它下载到我的 Android 手机上 现在的问题是我
  • JSONDecodeError:期望值:第 1 行第 1 列

    我在 Python 3 5 1 中收到此错误 json decoder JSONDecodeError 期望值 第1行第1列 字符0 这是我的代码 import json import urllib request connection u
  • 为什么 List.toArray() 返回一个 Object 数组? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 List toArray 返回 Object 而不是 String 如何解决这个问题 https stackoverflow com questions 7909747 why does li
  • ActiveX控件转图片(Excel/VBA)

    我的公司为包含 ActiveX 控件的客户创建工作簿 在大多数情况下 与表单控件相比 我们需要额外的功能 当我们创建它们时 它们在我们这边工作得很好 但是当我们将它们压缩并将它们发送给我们的客户时 他们打开WB并且ActiveX控件不再是A
  • JavaScript 数组 - 过滤掉与特定字符串不匹配的值

    我正在尝试循环遍历数组并过滤掉所有项目do not匹配特定值 例如我有这个数组 const emails email protected cdn cgi l email protection email protected cdn cgi
  • 使用 CMAKE 生成 makefile 后未定义的引用

    我可以生成我的 CMake 项目 但无法构建它 我有一个相当简单的项目结构 bin build
  • 如何使用反应式表单验证禁用的控件(不触发验证)

    假设我有这样的表单结构 this entryForm this formBuilder group date value disabled true Validators required notes sum credit value di
  • 如何在R中访问子文件夹中的指定文件而不更改工作目录?

    在 R 中 我想访问子文件夹中的某个文件 但我不想更改工作目录然后移回 它失去了时间和漫长 例如 我正在从事 home phuong文件夹 这是 phuong 的树结构 phuong gt data1 data2 data3 data1 g
  • 使用 IntelliJ IDEA 在项目构建中自动运行 Gradle 任务

    我有一个使用 JPA2 元模型生成的 IntelliJ IDEA Gradle 项目JpaModelgen Gradle 插件 https github com iboyko gradle plugins tree master jpamo
  • .on() 函数调用之间的区别

    以下有什么区别 document on scroll wrapper1 function wrapper2 scrollLeft wrapper1 scrollLeft wrapper1 on scroll function wrapper
  • 摆脱为每种可能的条件编写 if/else if 的习惯

    当解析 xml 文档的节点或属性时 如果文档很大 我会有一堆 if 和 else 语句 显然 从长远来看 100 ifs 并不能构成可维护的代码 除了这样做之外 还有其他更好的方法吗 我在 Hanselman 的博客上读到 他的一位朋友也有
  • 在 java OO 中,接口作为标签是一种不好的做法吗?

    在解析某些xml文件时 我遇到了一种情况 我必须使用接口作为标签来识别某些标签属于某个类别 例如 我创建了一个Tag接口来标识这些类用于表示 xml 标签 以及包含标签指出某些标签可以是某些标签的子标签之一 然后我偶然进入这个页面 http
  • 无法访问 Eclipse 市场

    我似乎无法访问 Eclipse 市场 我使用的是朱诺 4 2 我尝试删除 eclipse 并删除所有插件 删除我的 metadata 并删除 eclipse 应用程序数据 我尝试过将默认浏览器从 Firefox 切换到 Chrome 我尝试
  • 如何重新校准 Qt 应用程序的触摸事件?

    我有一个简单的 Qt5 2 应用程序 它是为 TI AM335x EVM 基于 ARM 的处理器 构建的 它只有 1 个按钮 可启用板上的一些 LED 我遇到的问题是触摸事件未针对屏幕进行校准 例子 X 所以如果 是按钮所在的位置 X是您必
  • 每当按下光标或箭头键时,如何获取当前光标位置(在文本区域中)?

    我试图单击一下后立即获取文本光标的位置down鼠标重新定位它 问题是selectionStart and selectionEnd不返回光标的最新位置 因为在单击之前不会存储 新 位置released 当您尝试使用鼠标重新定位插入符号时 代