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 Form.elements[i]的使用实例
Nov 13 Javascript
JavaScript DOM进阶方法
Apr 13 Javascript
图解js图片轮播效果
Dec 20 Javascript
JQuery解析XML的方法小结
Apr 02 Javascript
如何防止INPUT按回车自动提交表单FORM
Dec 06 Javascript
JS中利用FileReader实现上传图片前本地预览功能
Mar 02 Javascript
基于Vue 实现一个中规中矩loading组件
Apr 03 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
May 07 Javascript
KnockoutJS数组比较算法实例详解
Nov 25 Javascript
javascript将16进制的字符串转换为10进制整数hex
Mar 05 Javascript
原生JS实现天气预报
Jun 16 Javascript
微信小程序用户盒子、宫格列表的实现
Jul 01 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 Ajax中文乱码问题解决方法
2009/02/27 PHP
PHP面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
探讨file_get_contents与curl效率及稳定性的分析
2013/06/06 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
PHP加密解密类实例代码
2016/07/20 PHP
用js判断输入是否为中文的函数
2014/03/10 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
Python如何发布程序的详细教程
2018/10/09 Python
用Python逐行分析文件方法
2019/01/28 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
文明家庭先进事迹材
2014/01/27 职场文书
业务总经理岗位职责
2014/02/03 职场文书
社区消防工作实施方案
2014/03/21 职场文书
学生个人自我鉴定范文
2014/03/28 职场文书
教师个人发展总结
2015/02/11 职场文书
英文导游词
2015/02/13 职场文书
工作自我推荐信范文
2015/03/25 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python
python处理json数据文件
2022/04/11 Python