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 相关文章推荐
JavaScript 数组的 uniq 方法
Jan 23 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
Feb 25 Javascript
JS 去前后空格大全(IE9亲测)
Jul 15 Javascript
js获取url中的参数且参数为中文时通过js解码
Mar 19 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
Dec 03 Javascript
JavaScript中文件上传API详解
Apr 01 Javascript
javascript实现滚动效果的数字时钟实例
Jul 21 Javascript
jquery在vue脚手架中的使用方式示例
Aug 29 jQuery
three.js 入门案例详解
Jan 23 Javascript
浅析node应用的timing-attack安全漏洞
Feb 28 Javascript
微信网页授权并获取用户信息的方法
Jul 30 Javascript
koa router 多文件引入的方法示例
May 22 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
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
jquery中的$(document).ready()与window.onload的区别
2009/11/18 Javascript
点击弹出层效果&amp;弹出窗口后网页背景变暗效果的实现代码
2014/02/10 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
Django发送html邮件的方法
2015/05/26 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
生产车间实习自我鉴定
2013/09/23 职场文书
自荐信不宜过于夸大
2013/11/06 职场文书
大学四年个人的自我评价
2014/02/26 职场文书
安全责任书范文
2014/03/12 职场文书
分家协议书
2014/04/21 职场文书
社会实践活动报告
2015/02/05 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
MYSQL如何查看操作日志详解
2022/05/30 MySQL