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 相关文章推荐
JavaScript Event学习第七章 事件属性
Feb 07 Javascript
jquery 图片上传按比例预览插件集合
May 28 Javascript
Node.js开发之访问Redis数据库教程
Jan 14 Javascript
jquery基本选择器匹配多个元素的实现方法
Sep 05 Javascript
jQuery实现弹出窗口弹出div层的实例代码
Jan 09 Javascript
jQuery内容筛选选择器实例代码
Feb 06 Javascript
JavaScript中最常见的三个面试题解析
Mar 04 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
Jul 10 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
Aug 31 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
Jun 28 Javascript
vue 弹框产生的滚动穿透问题的解决
Sep 21 Javascript
JavaScript异步操作的几种常见处理方法实例总结
May 11 Javascript
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计算加权平均数的方法
2015/07/16 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
php与js的区别是什么
2013/08/05 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
Python实现提取文章摘要的方法
2015/04/21 Python
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
python ftplib模块使用代码实例
2019/12/31 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
娇韵诗俄罗斯官方网站:Clarins俄罗斯
2020/10/03 全球购物
一些Solaris面试题
2015/12/22 面试题
应届生法律顾问求职信
2013/11/19 职场文书
《红军不怕远征难》教学反思
2014/04/14 职场文书
基层党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年派出所工作总结
2015/04/24 职场文书
php png失真的原因及解决办法
2021/11/17 PHP
原生JS实现分页
2022/04/19 Javascript
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技