js行号显示的文本框实现效果(兼容多种浏览器 )


Posted in Javascript onOctober 23, 2015

利用js打造的一个非常实用简易的文本编辑框,可以显示行号并且同时兼容ie和firefox等主流浏览器,如下效果图:

js行号显示的文本框实现效果(兼容多种浏览器 )

以下是该效果的源码:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> 
<title>显示行号的文本框效果,兼容ie、火狐等浏览器</title> 
<style type="text/css"> 
#main{color:#666} 
textarea{border:1px solid #7f9db9;font-size:9pt;width:430px;color:#000} 
.grey{color:#999} 
#msg1,#msg2,#msg3,#msg4{ display:none} 
#ol{position:absolute;z-index:1;padding:0px;margin:0px;border:0px;background:#ecf0f5;width:23px;text-align:left; } 
#li{background:#ecf0f5;height:160px;overflow:hidden;width:32px;border-right:0;line-height:20px;margin:0px;padding:0px;text-align:center} 
#c2{font-family:Arial, Helvetica, sans-serif;height:160px; margin:0px; width:416px;padding:0 0 0 35px;overflow-x: hidden;line-height:20px;} 
</style> 
<script type="text/javascript"> 
String.prototype.trim2=function(){ 
  return this.replace(/(^\s*)|(\s*$)/g, ""); 
} 
function F(objid){ 
  return document.getElementById(objid).value; 
} 
function G(objid){ 
  return document.getElementById(objid); 
} 
</script> 
</head> 
<body onLoad="keyUp();"> 
<div> 
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="position:relative"> 
 <tr> 
  <td width="55%"> 
  <div id="ol"><textarea cols="2" rows="10" id="li" disabled></textarea></div> 
  <textarea name="co" cols="60" rows="10" wrap="off" id="c2" onblur="check('2')" onKeyUp="keyUp()" onFocus="clearValue('2')" onscroll="G('li').scrollTop=this.scrollTop;" oncontextmenu="return false" class="grey">请在这里粘入多段字看一看。 
</textarea>   
  </td> 
  </tr> 
</table> 
</div> 
<em class="block" id="msg2">文本框没有内容。</em> 
<script type="text/javascript"> 
var msgA=["msg1","msg2","msg3","msg4"]; 
var c=["c1","c2","c3","c4"]; 
var slen=[50,20000,20000,60];//允许最大字数 
var num="";
var isfirst=[0,0,0,0,0,0]; 
function isEmpty(strVal){ 
 if( strVal=="" ) 
 return true; 
 else 
 return false; 
} 
function isBlank(testVal){  
  var regVal=/^\s*$/; 
  return (regVal.test(testVal)) 
} 
function chLen(strVal){ 
 strValstrVal=strVal.trim2(); 
 var cArr=strVal.match(/[^\x00-\xff]/ig); 
  return strVal.length+(cArr==null ? 0 : cArr.length);  
} 
function check(i){ 
 var iValue=F("c"+i); 
 var iObj=G("msg"+i); 
 var n=(chLen(iValue)>slen[i-1]); 
 if((isBlank(iValue)==true)||(isEmpty(iValue)==true)||n==true){  
 iObj.style.display ="block"; 
 }else{  
 iObj.style.display ="none"; 
 } 
} 
function checkAll(){ 
 for(var i=0;i<msgA.length;i++){ 
 check(i+1); 
 if(G(msgA[i]).style.display=="none"){ 
  continue; 
 }else{ 
  alert("填写错误,请查看提示信息!"); 
  return; 
 } 
 } 
 G("form1").submit(); 
} 
function clearValue(i){ 
 G(c[i-1]).style.color="#000"; 
 keyUp(); 
 if(isfirst[i]==0){ 
 G(c[i-1]).value=""; 
 } 
 isfirst[i]=1; 
} 
function keyUp(){ 
 var obj=G("c2"); 
 var str=obj.value; 
 strstr=str.replace(/\r/gi,""); 
 strstr=str.split("\n"); 
 n=str.length; 
 line(n); 
} 
function line(n){ 
 var lineobj=G("li"); 
 for(var i=1;i<=n;i++){ 
 if(document.all){ 
  num+=i+"\r\n"; 
 }else{ 
  num+=i+"\n"; 
 } 
 } 
 lineobj.value=num; 
 num=""; 
} 
function autoScroll(){ 
 var nV=0; 
 if(!document.all){ 
 nV=G("c2").scrollTop; 
 G("li").scrollTop=nV; 
 setTimeout("autoScroll()",20); 
 } 
} 
if(!document.all){ 
window.addEventListener("load",autoScroll,false); 
} 
</script> 
</body> 
</html>

以上就是javascript如何实现行号显示的文本框效果的源代码,希望对大家的学习有所帮助。

Javascript 相关文章推荐
jQuery下的动画处理总结
Oct 10 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
Nov 25 Javascript
推荐10 款 SVG 动画的 JavaScript 库
Mar 24 Javascript
JavaScript声明变量名的语法规则
Jul 10 Javascript
浅谈javascript中replace()方法
Nov 10 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 Javascript
微信小程序实现下载进度条的方法
Dec 08 Javascript
详解使用 Node.js 开发简单的脚手架工具
Jun 08 Javascript
angular4笔记系列之内置指令小结
Nov 09 Javascript
一文看懂如何简单实现节流函数和防抖函数
Sep 05 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
Nov 25 Javascript
vue.js实现点击图标放大离开时缩小的代码
Jan 27 Vue.js
js中对函数设置默认参数值的3种方法
Oct 23 #Javascript
js窗口关闭提示信息(兼容IE和firefox)
Oct 23 #Javascript
javascript跨域的方法汇总
Oct 23 #Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
Oct 23 #Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
Oct 23 #Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
Oct 23 #Javascript
深入浅析javascript立即执行函数
Oct 23 #Javascript
You might like
php session应用实例 登录验证
2009/03/16 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
JavaScript OOP类与继承
2009/11/15 Javascript
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
python opencv之SURF算法示例
2018/02/24 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
django序列化serializers过程解析
2019/12/14 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
python爬虫搭配起Bilibili唧唧的流程分析
2020/12/01 Python
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
与UNIX有关的几个名词
2015/09/17 面试题
省优秀教师事迹材料
2014/01/30 职场文书
安全检查管理制度
2014/02/02 职场文书
新春文艺演出主持词
2014/03/27 职场文书
中国入世承诺
2014/04/01 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
个人四风问题原因分析及整改措施
2014/09/28 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript