textarea 获取光标位置和设置光标位置

uniapp - 手动设置 input / textare 输入框焦点并将光标移到末尾,也支持 uview 组件库 u-input 输入框 / u-textarea 文本域(全平台兼容的通用解决方案) uniapp小程序h5网页安卓苹果app设置input输入框textare多行输入框的焦点,uniapp设置输入框input焦点,uniapp手动实现让input文本框聚焦,uniapp如何让输入框input手动聚焦,uni-app输入框手动设置焦点,input手动获取焦点,uniappinput自动聚焦,uniapp每次手动让input输入框获取焦点,uniapp自动获取焦点并将光标移到末尾,uniapp给textarea多行文本框设置获取焦点,uniapp获取输入框焦点后怎么把光标移到最后,unia 阅读详情

获取光标位置

//ctrl 是dom节点
function getCursortPosition (ctrl) 
{
    //获取光标位置函数 
    var CaretPos = 0; 
    // IE Support
    if (document.selection) 
    { 
        ctrl.focus (); // 获取焦点
        var Sel = document.selection.createRange (); // 创建选定区域
        Sel.moveStart('character', -ctrl.value.length); // 移动开始点到最左边位置
        CaretPos = Sel.text.length;                      // 获取当前选定区的文本内容长度
    } 
    // Firefox support (非ie)
    else if (ctrl.selectionStart || ctrl.selectionStart == '0')
    {
        CaretPos =ctrl.selectionStart; // 获取选定区的开始点 
    }
    return CaretPos; 
}

设置光标位置

//ctrl 是dom节点,pos 是要定位到的位置
function setCaretPosition(ctrl, pos)
{
    //设置光标位置函数 
    if(ctrl.setSelectionRange)   //非ie
    {
        ctrl.focus();  // 获取焦点
        ctrl.setSelectionRange(pos,pos);  // 设置选定区的开始和结束点
    } 
    else if (ctrl.createTextRange)
    { 
        var range = ctrl.createTextRange();  // 创建选定区
        range.collapse(true);                // 设置为折叠,即光标起点和结束点重叠在一起
        range.moveEnd('character', pos);     // 移动结束点
        range.moveStart('character', pos);   // 移动开始点
        range.select();                      // 选定当前区域
    } 
}

有一个场景,在微软雅黑字体下,三个空格大概占一个汉字字符的宽度,现在改为两个空格占一个汉字的宽度,用 代替。由于textarea不解析转义字符,所以做一个隐藏的div,先让div解析,然后再把内容取回来放入textarea中即可。由于会出现在一段话中间插入空格,所以用到了光标的获取和设置。
代码如下:

<textarea id="textarta" cols="30" rows="10"></textarea>
<div id="div" style="display: none"></div>
//在非ie浏览器下
//用jq写的代码
$('#textarea').keyup(function (e) {
    //敲入空格时
    if (e.keyCode == 32) {
        var index = $(this)[0].selectionStart; //获取光标位置
        var text = $(this).val();
        text = text.replace('/ /', '&ensp;');
        var html = $('#div').html(text).text();
        $(this).val(html);
        //设置光标位置
        //$(this)[0].focus();
        $(this)[0].setSelectionRange(index, index);
    }
});
火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据 阅读详情

相关推荐

从零开始:在Ubuntu 22.04上配置Isaac Gym Preview 3环境(含常见错误解决方案)

本文提供了在Ubuntu 22.04系统上从零开始配置Isaac Gym Preview 3环境的完整实战指南。内容涵盖NVIDIA驱动安装、Conda环境搭建、CUDA与PyTorch版本精准匹配、Isaac Gym核心安装与验证,并重点介绍了针对四足机器人等复杂系统的强化学习训练环境配置、常见错误解决方案及性能调优技巧,旨在帮助开发者高效部署这一高性能物理仿真平台。

weixin_29048775的博客 392

如何获取 textarea 的光标位置

在做一个 textarea 的工具,需要获取光标位置再进行其它操作。

学习笔记 1856

PyQt5 使用QSqlDatabase连接Mysql数据库时Driver not loaded Driver not loaded

PyQt5 使用QSqlDatabase连接Mysql数据库时Driver not loaded Driver not loaded

睡觉不打呼噜的博客 1564

如何获取光标在 textarea 中的位置

这里的位置不是指光标所在的字符数位置,而是相对 textarea 的向上向左的大体像素位置。你可以通过来获取光标在 textarea 文本中的字符位置,比如在第几个字符上。

学习笔记 1840

Windows系统下复现PointNet++算法

本文详细介绍了如何在Windows系统下复现PointNet++算法,内容包括程序下载、环境配置、数据集准备以及三个主要任务(语义分割、分类、部件分割)的实现步骤和常见报错解决方法。通过遵循本文的指导,用户可以顺利完成PointNet++算法的复现。

LingYi_5的博客 4326

【Qt】QML-01:使用QtCreator10创建QML工程,并讲解第一个程序:Hello World

QML第一讲:创建QML工程、详解QML第一个程序Hello World

郭老二 7796

Textarea-光标-有趣的实践

下面我是用ref的形式,获取到标签元素,再得到标签的selectionStart,selectionEnd这两个属性,分别代表光标的开始结束位置,在不进行鼠标批量选择时,这两个通常在一个位置。最近在项目开发中,遇到这样一个需求,在textarea中(这里我们用的ant-design)在光标处插入目标字符串,字符串类似于模板字符串格式,通过${}包裹。2、删除目标字符串时只能整体删除,例如删除目标字符串中一个字符,需要将整个目标字符串删除,通过鼠标进行范围选取时,要将有交集的目标字符串都删除。

qq_36523196的博客 855

python音频信号分析

声音以具有诸如频率、带宽、分贝等参数的音频信号的形式表示,典型的音频信号可以表示为幅度和时间的函数

MAY的博客 2785

关于uniapp中textarea获取光标位置的问题

一直以来没有写东西的习惯,最近在做一个uniapp的demo,发现了一个问题。我想在textarea中在点击的位置插入复制的文字,那么就要获取到光标的位置。项目是用uniapp+uviewUi做的,在uniapp官方的文档中有一个api叫uni.getSelectedTextRange(OBJECT),介绍说在input、textarea等focus之后,获取输入框的光标位置。百度了很多方法,都不能正确的获取到光标的位置,最后我把u-input换成了html的textarea标签。这样就拿到了光标位置。

weixin_44096091的博客 2721

2026.3.13:docker compose运行了Milvus 6个月,占用磁盘近138GB的原因

Docker容器运行Milvus半年后占用138GB磁盘空间,主要原因是容器日志无限增长、容器内写入大量数据未挂载到数据卷,以及未清理临时文件。通过检查发现超大容器目录569035582ce3...占用主要空间。解决方案是使用truncate命令清空容器日志文件(*-json.log),释放磁盘空间。建议配置日志轮转机制,并将数据挂载到宿主机数据卷以避免类似问题。

拥抱具身智能,昇腾Ascend C 194

软件可靠性测试与评价

本文系统介绍了软件可靠性工程的核心内容,包括可靠性概念、模型分类、测试方法和评价体系。重点解析了可靠性测试的三大步骤:定义运行剖面、设计测试用例和实施测试收集数据,并以智能安防系统为例说明具体应用。可靠性评价需结合业务场景,通过量化指标(MTBF、失效率等)和模型预测持续优化系统。文章强调可靠性需贯穿软件全生命周期,通过闭环反馈实现持续改进,为关键系统提供质量保障。

moton2017的博客 2050

Javascript设置和获取Textarea的光标位置的方法

<br /><html><head><br /><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /><br /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br /><title>JS设置及获取Textarea的光标位置</title><br /> <script><br />  var isIE = !(!document.all);<br

relucent的专栏 1354

飞牛fnNAS搭建个人小账本

本文介绍了如何在飞牛NAS上部署ezBookkeeping个人记账应用。该开源工具支持多平台使用,具备双因素认证、多级分类等功能。文章详细讲解了Docker激活、镜像下载、容器部署等步骤,并展示了账户管理、交易记录等基础操作。同时指导用户通过ZeroTier实现远程访问,方便随时随地使用个人记账系统。该方案既保障了数据隐私,又提供了专业记账功能,适合对财务隐私敏感的用户。

dgnankai的专栏 782

Javascript设置和获取Textarea的光标位置的方法(亲测有用),可定位光标到某个位置

原文网址:http://www.iteye.com/topic/716748 效果如图: 源码: JS设置及获取Textarea的光标位置 var isIE = !(!document.all); function posCursor(){ var start=0,end=0; var oTexta

Touatou的博客 8964

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

获取/设置光标位置,兼容Input TextArea

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> &...

weixin_34357887的博客 115

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【转载】获取/设置光标位置,兼容Input TextArea

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head&gt; ..

changejeans的专栏 321

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

JS-chrome中textarea禁止回车换行、获取和设置光标位置

最近公司项目中要求制作在线聊天服务,其中输入框的需求: 1.单按回车发送消息 2.ctrl/command+回车换行 但是textarea本身带有的功能和需求相反,所以只有对js事件进行处理 1.禁止textarea单按回车时换行 项目是用vue编写,所以无需对event的keyCode判断是否按了ctrl或meta,模板如下: <textarea v-model=...

全栈攻城狮? 3627

Javascript获取光标位置以及设置光标位置

对于写javascript写网页编辑器的人来说,获取textarea中的光标位置是一个非常重要的问题,而往往很多人在这个地方不知所措,找不到好的办法.今天在此我贴出Javascript获取光标位置以及设置光标位置的代码,具体见下:获取光标位置函数: function getCursortPosition (ctrl) {     var CaretPos = 0;    // IE Supp...

axl---专心专注于web前端开发 528

记录TEXTAREA中光标位置的设置/获取方法

设置位置 function setCurPosition(t, s, e){ var s, e, range, stored_range; if(t.selectionStart == undefined){ var txtRanage = t.createTextRange(); ...

weixin_30387799的博客 282

javascript获取光标位置以及设置光标位置(兼容firefox)

在项目开发中经常遇到input等设置光标位置到最后的问题,今天我查了一下Google,找到了在IE、Firefox、Opera等主流浏览器的获取光标位置(getCursortPosition)以及设置光标位置(setCursorPosition)的函数。 function getCursortPosition (ctrl) {//获取光标位置函数 var CaretPos

Noncy的专栏 2416

获取Textarea 元素当前的光标位置及document.selection.createRange()资料

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head&gt...

diehe5608的博客 392

INPUT、TEXTAREA以及DIV中控制光标的位置

设置以及获取光标位置在Textarea和Input中如下获得光标函数可以兼容IE以及FireFox,对于可编辑DIV,如下代码仅仅IE下也可以正常运行. IE分支:函数中的Sel变量是整个文档的可选区域,所以需要做一个循环,使得Sel区域中的文本中的最后一段文本和文本框中的文本做到最长匹配,其偏移量为光标的位置function getCaretPos(element) { var CaretPos = 0; // IE Support if (document.se

reedseutozte的专栏 4409
上一篇: js 滚动加载 以及 防抖函数和节流函数
下一篇: select2关于删除选中项,按一下退格键删除一项
haogemr
博客等级 码龄9年 71粉丝 87原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值