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 相关文章推荐
js模拟滚动条(横向竖向)
Feb 22 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
Mar 12 Javascript
Javascript中call的两种用法实例
Dec 13 Javascript
解决json日期格式问题的3种方法
Feb 02 Javascript
js构造函数、索引数组和属性的实现方式和使用
Nov 16 Javascript
js一维数组、多维数组和对象的混合使用方法
Apr 03 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
Aug 08 Javascript
详解JavaScript中数组的reduce方法
Dec 02 Javascript
canvas绘制的直线动画
Jan 23 Javascript
javascript 中null和undefined区分和比较
Apr 19 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
May 12 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
Jun 04 Javascript
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
PHP浮点比较大小的方法
2016/02/14 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
关于js datetime的那点事
2011/11/15 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
如何用itertools解决无序排列组合的问题
2017/05/18 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
师范毕业生求职自荐信
2013/09/25 职场文书
最新的咖啡店创业计划书
2013/12/30 职场文书
绿色学校实施方案
2014/03/31 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
爱国教育主题班会
2015/08/14 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电
Tomcat用户管理的优化配置详解
2022/03/31 Servers