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 相关文章推荐
防止页面被iframe(兼容IE,Firefox火狐)
Jul 04 Javascript
jquery 删除cookie失效的解决方法
Nov 12 Javascript
javascript 上下banner替换具体实现
Nov 14 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
Feb 03 Javascript
JS返回iframe中frameBorder属性值的方法
Apr 01 Javascript
JavaScript的removeChild()函数用法详解
Dec 27 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
Sep 20 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
Sep 25 Javascript
jqueryUI tab标签页代码分享
Oct 09 jQuery
vue keep-alive请求数据的方法示例
May 16 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
Nov 29 Javascript
如何使用Javascript中的this关键字
May 28 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 ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
JavaScript 产生不重复的随机数三种实现思路
2012/12/13 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
js 判断浏览器使用的语言示例代码
2014/03/22 Javascript
原生javaScript实现图片延时加载的方法
2014/12/22 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
Nodejs下DNS缓存问题浅析
2016/11/16 NodeJs
Vue计算属性的学习笔记
2017/03/22 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
2015/08/23 Python
用Python实现命令行闹钟脚本实例
2016/09/05 Python
Python实现的从右到左字符串替换方法示例
2018/07/06 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
canvas烟花特效锦集
2018/01/17 HTML / CSS
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
公务员转正考察材料
2014/02/07 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
应届生面试求职信
2014/07/02 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
演讲稿之开卷有益
2019/08/07 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis