JS给Textarea文本框添加行号的方法


Posted in Javascript onAugust 20, 2015

本文实例讲述了JS给Textarea文本框添加行号的方法。分享给大家供大家参考。具体如下:

这里使用JS实现让Textarea文本框显示行号的功能,每一行的前面都会有下数字序号,如果用来显示代码的话,可以直接找到某一行,如果不显示行号,则还要自己手功去查,想要此功能,你只需设置好TextArea ID,并加入代码中的JavaScript代码部分即可,文本框的长宽则是由CSS来控制的,你可试着修改一下,长宽的显示要与JS相匹配。

运行效果截图如下:

JS给Textarea文本框添加行号的方法

在线演示地址如下:

具体代码如下:

<html> 
<head>
<title>Js给文本框添加行号功能</title>
<style type="text/css">
 #codeTextarea{width: 500px;height: 310px;}
.textAreaWithLines{font-family: courier;border: 1px solid #ddd;}
.textAreaWithLines textarea,.textAreaWithLines div{border: 0px;line-height: 120%;font-size: 12px;}
.lineObj{color: #666;}
</style>
<script type="text/javascript">
var lineObjOffsetTop = 2;
function createTextAreaWithLines(id)
{
  var el = document.createElement('DIV');
  var ta = document.getElementById(id);
  ta.parentNode.insertBefore(el,ta);
  el.appendChild(ta);
  el.className='textAreaWithLines';
  el.style.width = (ta.offsetWidth + 30) + 'px';
  ta.style.position = 'absolute';
  ta.style.left = '30px';
  el.style.height = (ta.offsetHeight + 2) + 'px';
  el.style.overflow='hidden';
  el.style.position = 'relative';
  el.style.width = (ta.offsetWidth + 30) + 'px';
  var lineObj = document.createElement('DIV');
  lineObj.style.position = 'absolute';
  lineObj.style.top = lineObjOffsetTop + 'px';
  lineObj.style.left = '0px';
  lineObj.style.width = '27px';
  el.insertBefore(lineObj,ta);
  lineObj.style.textAlign = 'right';
  lineObj.className='lineObj';
  var string = '';
  for(var no=1;no<20;no++){
   if(string.length>0)string = string + '<br>';
   string = string + no;
  }
   ta.onkeydown = function() { positionLineObj(lineObj,ta); };
   ta.onmousedown = function() { positionLineObj(lineObj,ta); };
   ta.onscroll = function() { positionLineObj(lineObj,ta); };
   ta.onblur = function() { positionLineObj(lineObj,ta); };
   ta.onfocus = function() { positionLineObj(lineObj,ta); };
   ta.onmouseover = function() { positionLineObj(lineObj,ta); };
   lineObj.innerHTML = string;
  }
function positionLineObj(obj,ta)
{
   obj.style.top = (ta.scrollTop * -1 + lineObjOffsetTop) + 'px';  
}
</script>
</head>  
<body>
<form>
<textarea id="codeTextarea"></textarea>
</form>
<script type="text/javascript">
createTextAreaWithLines('codeTextarea');
</script>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jquery插件开发之实现md5插件
Mar 17 Javascript
JavaScript中实现sprintf、printf函数
Jan 27 Javascript
Javascript中实现trim()函数的两种方法
Feb 04 Javascript
JavaScript记录光标在编辑器中位置的实现方法
Apr 22 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
Nov 29 Javascript
Express框架之connect-flash详解
May 31 Javascript
vue双花括号的使用方法 附练习题
Nov 07 Javascript
JS实现图片转换成base64的各种应用场景实例分析
Jun 22 Javascript
create-react-app 修改为多入口编译的方法
Aug 01 Javascript
微信小程序wx.request拦截器使用详解
Jul 09 Javascript
js new Date()实例测试
Oct 31 Javascript
js实现的在本地预览图片功能示例
Nov 09 Javascript
js实现Select列表内容自动滚动效果代码
Aug 20 #Javascript
javascript如何操作HTML下拉列表标签
Aug 20 #Javascript
七夕情人节丘比特射箭小游戏
Aug 20 #Javascript
js脚本分页代码分享(7种样式)
Aug 19 #Javascript
贴近用户体验的Jquery日期、时间选择插件
Aug 19 #Javascript
JS文字球状放大效果代码分享
Aug 19 #Javascript
IE6兼容透明背景图片及解决方案
Aug 19 #Javascript
You might like
如何开发一个虚拟域名系统
2006/10/09 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
php执行sql语句的写法
2009/03/10 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
PHP随机生成唯一HASH值自定义函数
2015/04/20 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
js控制框架刷新
2008/08/01 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
玩转python爬虫之正则表达式
2016/02/17 Python
Python OpenCV处理图像之滤镜和图像运算
2018/07/10 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
python异常处理try except过程解析
2020/02/03 Python
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
路政管理毕业自荐书范文
2014/02/10 职场文书
学习决心书范文
2014/03/11 职场文书
特教教师先进事迹
2014/05/21 职场文书
企业职业病防治方案
2014/05/29 职场文书