JavaScript记录光标在编辑器中位置的实现方法


Posted in Javascript onApril 22, 2016

本文实例讲述了JavaScript记录光标在编辑器中位置的实现方法。分享给大家供大家参考,具体如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<script type="text/javascript">
function $(ele){return document.getElementById(ele)}
//记录编辑器中的位置
   var selection_start;
   var selection_end;
   function savePos(textBox){
   var start=0;
   var end=0;
   if(typeof(textBox.selectionStart) == "number"){ // not ie
    //alert(typeof(textBox.selectionStart) );
    start = textBox.selectionStart;
    end = textBox.selectionEnd;
   }
   else if(document.selection){
    var range = document.selection.createRange();
    if(range.parentElement().id == textBox.id){
     var range_all = document.body.createTextRange();
     range_all.moveToElementText(textBox);
     for (start=0; range_all.compareEndPoints("StartToStart", range) < 0; start++)
      range_all.moveStart('character', 1);
     for (var i = 0; i <= start; i ++){
      if (textBox.value.charAt(i) == '/n')
       start++;
     }
      var range_all = document.body.createTextRange();
      range_all.moveToElementText(textBox);
      for (end = 0; range_all.compareEndPoints('StartToEnd', range) < 0; end ++)
       range_all.moveStart('character', 1);
       for (var i = 0; i <= end; i ++){
        if (textBox.value.charAt(i) == '/n')
         end ++;
       }
     }
    }
    selection_start = start;
    selection_end = end;
   }
</script>
<form action="" id="test">
<textarea id="t" onfocus="savePos(this);$('log').value=selection_start" onkeydown="savePos(this);$('log').value=selection_start" onmousedown="savePos(this);$('log').value=selection_start" onmouseup="savePos(this);$('log').value=selection_start" >
</textarea>
<input type="text" id="log" />
</form>
</body>
</html>

更多关于JavaScript相关内容可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js数字输入框(包括最大值最小值限制和四舍五入)
Nov 24 Javascript
jquery与google map api结合使用 控件,监听器
Mar 04 Javascript
GRID拖拽行的实例代码
Jul 18 Javascript
JS生成不重复随机数组的函数代码
Jun 10 Javascript
简单讲解jQuery中的子元素过滤选择器
Apr 18 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
Jul 11 Javascript
浅谈JS封闭函数、闭包、内置对象
Jul 18 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
Oct 23 Javascript
jQuery实现checkbox的简单操作
Nov 18 jQuery
vue+Element实现搜索关键字高亮功能
May 28 Javascript
JavaScript中的this基本问题实例小结
Mar 09 Javascript
Vue实现购物车基本功能
Nov 08 Javascript
在AngularJS中使用jQuery的zTree插件的方法
Apr 21 #Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
Apr 21 #Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
Apr 21 #Javascript
javascript常见数字进制转换实例分析
Apr 21 #Javascript
BootStrap和jQuery相结合实现可编辑表格
Apr 21 #Javascript
动态加载js文件简单示例
Apr 21 #Javascript
JS动态插入并立即执行回调函数的方法
Apr 21 #Javascript
You might like
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
ext 同步和异步示例代码
2009/09/18 Javascript
javascript写的简单的计算器,内容很多,方法实用,推荐
2011/12/29 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
javascript中的this详解
2014/12/08 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
js实现时钟定时器
2020/03/26 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
Python的词法分析与语法分析
2013/05/18 Python
python网络编程学习笔记(四):域名系统
2014/06/09 Python
python实现的文件同步服务器实例
2015/06/02 Python
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
深入解析Python中的上下文管理器
2016/06/28 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
python调用staf自动化框架的方法
2018/12/26 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
丝芙兰香港官网:Sephora香港
2018/03/13 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
幼儿园毕业教师感言
2014/02/21 职场文书
119消防日活动总结
2014/08/29 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
停电放假通知
2015/04/14 职场文书
2015年手术室工作总结
2015/05/11 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
单位工资证明范本
2015/06/12 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
MySQL 数据表操作
2022/05/04 MySQL