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 相关文章推荐
Javascript string 扩展库代码
Apr 09 Javascript
js中的数组Array定义与sort方法使用示例
Aug 29 Javascript
使用Jquery实现点击文字后变成文本框且可修改
Sep 21 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
Mar 25 Javascript
基于node.js express mvc轻量级框架实践
Sep 14 Javascript
vuex中使用对象展开运算符的示例
Sep 25 Javascript
详解如何在你的Vue项目配置vux
Jun 04 Javascript
抖音上用记事本编写爱心小程序教程
Apr 17 Javascript
js实现课堂随机点名系统
Nov 21 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
Dec 16 Javascript
关于element-ui表单中限制输入纯数字的解决方式
Sep 08 Javascript
js+css3实现简单时钟特效
Sep 13 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
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
php实现递归的三种基本方式
2020/07/04 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
修改file按钮的默认样式实现代码
2013/04/23 Javascript
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
JQuery操作元素的css样式
2015/03/09 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
Node 代理访问的实现
2019/09/19 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
用python代码做configure文件
2014/07/20 Python
python字符串连接的N种方式总结
2014/09/17 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
django 单表操作实例详解
2019/07/30 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
马来西亚网上购物平台:ezbuy
2018/02/13 全球购物
2019年Java 最常见的 面试题
2016/10/19 面试题
英文版银行求职信
2013/10/09 职场文书
机电专业毕业生求职信
2013/10/27 职场文书
美发活动策划书
2014/01/14 职场文书
英语分层教学实施方案
2014/06/15 职场文书
共青团员自我评价范文
2014/09/14 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书