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捕获鼠标滚轮事件代码
Dec 16 Javascript
js 判断浏览器使用的语言示例代码
Mar 22 Javascript
详解jquery中$.ajax方法提交表单
Nov 03 Javascript
JavaScript生成的动态下雨背景效果实现方法
Feb 25 Javascript
jquery实现的仿天猫侧导航tab切换效果
Aug 24 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
Oct 12 Javascript
JS非行间样式获取函数的实例代码
Jun 05 Javascript
vue+php实现的微博留言功能示例
Mar 16 Javascript
HTML+JavaScript实现扫雷小游戏
Sep 30 Javascript
在JavaScript中实现链式调用的实现
Dec 24 Javascript
微信小程序实现转盘抽奖
Sep 21 Javascript
如何在面试中手写出javascript节流和防抖函数
Oct 22 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逐行读取txt文件写入数组的方法
2015/07/02 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
Vue自定义指令实现checkbox全选功能的方法
2018/02/28 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
JS实现“全选”和&quot;全不选&quot;功能代码实例
2020/02/06 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
2020/07/19 Javascript
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
python正则分析nginx的访问日志
2017/01/17 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
基于Jquery和Css3代码制作可以缩放的搜索框
2015/11/19 HTML / CSS
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
护士毕业实习感言
2014/03/05 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
MySQL 四种连接和多表查询详解
2021/07/16 MySQL
Python Pygame实战之塔防游戏的实现
2022/03/17 Python