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 相关文章推荐
jquery模拟按下回车实现代码
Sep 20 Javascript
jQuery Ajax请求状态管理器打包
May 03 Javascript
innerText 使用示例
Jan 23 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
Feb 25 Javascript
JavaScript代码性能优化总结(推荐)
May 16 Javascript
归纳下js面向对象的几种常见写法总结
Aug 24 Javascript
js验证手机号、密码、短信验证码代码工具类
Jun 24 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
Jun 05 Javascript
JS如何定义用字符串拼接的变量
Jul 11 Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 Javascript
详解JavaScript的this指向和绑定
Sep 08 Javascript
javascript Number 与 Math对象的介绍
Nov 17 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 获得汉字拼音首字母的函数
2009/08/01 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
微信小程序实现图片压缩功能
2018/01/26 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
vue微信分享插件使用方法详解
2020/02/18 Javascript
python实现用户登录系统
2016/05/21 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
Python numpy 点数组去重的实例
2018/04/18 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
详解python变量与数据类型
2020/08/25 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
最好的商品表达自己:Cafepress
2019/09/04 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
北大研究生linux应用求职信
2013/10/29 职场文书
机械设计毕业生自荐信
2014/02/02 职场文书
道路交通安全实施方案
2014/03/12 职场文书
家长评语怎么写
2014/12/30 职场文书