JS在TextArea光标位置插入文字并实现移动光标到文字末尾


Posted in Javascript onJune 21, 2013

=IE支持document.selection
=Firefox,Chrome,Safari以及Opera都有selectionStart和selectionEnd属性

function insertText(obj,str) { 
if (document.selection) { 
var sel = document.selection.createRange(); 
sel.text = str; 
} else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') { 
var startPos = obj.selectionStart, 
endPos = obj.selectionEnd, 
cursorPos = startPos, 
tmpStr = obj.value; 
obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length); 
cursorPos += str.length; 
obj.selectionStart = obj.selectionEnd = cursorPos; 
} else { 
obj.value += str; 
} 
} 
function moveEnd(obj){ 
obj.focus(); 
var len = obj.value.length; 
if (document.selection) { 
var sel = obj.createTextRange(); 
sel.moveStart('character',len); 
sel.collapse(); 
sel.select(); 
} else if (typeof obj.selectionStart == 'number' && typeof obj.selectionEnd == 'number') { 
obj.selectionStart = obj.selectionEnd = len; 
} 
}

<input type="button" onclick="insertText(document.getElementById('text'),' 新文字—YoyiorLee ')" value="插入文字"></input>

<input type="button" onclick="moveEnd(document.getElementById('text'))" value="移到末尾"></input>
Javascript 相关文章推荐
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
Jun 24 Javascript
使用jquery的ajax需要注意的地方dataType的设置
Aug 12 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
Jul 14 Javascript
js运动动画的八个知识点
Mar 12 Javascript
Ubuntu系统下Angularjs开发环境安装
Sep 01 Javascript
Jq通过td获取同行其它列td的方法
Oct 05 Javascript
详解Angular 4.x 动态创建组件
Apr 25 Javascript
JavaScript hasOwnProperty() 函数实例详解
Aug 04 Javascript
angular2模块和共享模块详解
Apr 08 Javascript
详解webpack4升级指南以及从webpack3.x迁移
Jun 12 Javascript
vue设置一开始进入的页面教程
Oct 28 Javascript
Vue实现图书管理案例
Jan 20 Vue.js
JS获得URL超链接的参数值实例代码
Jun 21 #Javascript
随窗体滑动的小插件sticky源码
Jun 21 #Javascript
jquery中文乱码的多种解决方法
Jun 21 #Javascript
js单向链表的具体实现实例
Jun 21 #Javascript
javascript setTimeout和setInterval计时的区别详解
Jun 21 #Javascript
js简易namespace管理器 实例代码
Jun 21 #Javascript
JavaScript中的this关键字介绍与使用实例
Jun 21 #Javascript
You might like
探讨如何把session存入数据库
2013/06/07 PHP
php连接函数implode与分割explode的深入解析
2013/06/26 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
twig里使用js变量的方法
2016/02/05 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
jQuery操作元素追加内容示例
2020/01/10 jQuery
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
整理Python最基本的操作字典的方法
2015/04/24 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
python批量修改图片大小的方法
2018/07/24 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
原生python实现knn分类算法
2019/10/24 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
CSS实现进度条和订单进度条的示例
2020/11/05 HTML / CSS
中国跨境电商:Tomtop
2017/03/16 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
水利公司纪检监察自我鉴定
2014/02/25 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
住房租房协议书
2014/08/20 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL
Java实现简易的分词器功能
2021/06/15 Java/Android