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 相关文章推荐
childNodes.length与children.length的区别
May 14 Javascript
JS中处理与当前时间间隔的函数代码
May 23 Javascript
jquery三个关闭弹出层的小示例
Nov 05 Javascript
探讨jQuery的ajax使用场景(c#)
Dec 03 Javascript
jQuery检查事件是否触发的方法
Jun 26 Javascript
获取select的value、text值的简单示例(jquery与javascript)
Dec 07 Javascript
js链表操作(实例讲解)
Aug 29 Javascript
详解在vue-cli中使用路由
Sep 25 Javascript
JavaScript实现省市区三级联动
Feb 13 Javascript
JS内置对象和Math对象知识点详解
Apr 03 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
May 12 Javascript
vue 使用async写数字动态加载效果案例
Jul 18 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提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
动态加载js的几种方法
2006/10/23 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
JS实现的字符串数组去重功能小结
2019/06/17 Javascript
Python3实现的字典遍历操作详解
2018/04/18 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
python调用staf自动化框架的方法
2018/12/26 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
两道JAVA笔试题
2016/09/14 面试题
施工材料员岗位职责
2014/02/12 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
植树节活动总结
2014/04/30 职场文书
企业承诺书格式
2014/05/21 职场文书
关于九一八事变的演讲稿2014
2014/09/17 职场文书
护理实习生带教计划
2015/01/16 职场文书
拾金不昧感谢信
2015/01/21 职场文书
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python