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 相关文章推荐
JS JavaScript获取Url参数,src属性参数
Mar 09 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
Jun 14 Javascript
js 获取浏览器版本以此来调整CSS的样式
Jun 03 Javascript
浅谈javascript的分号的使用
May 12 Javascript
js判断浏览器类型及设备(移动页面开发)
Jul 30 Javascript
如何用JavaScript实现动态修改CSS样式表
May 20 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
May 12 Javascript
jquery实现用户登陆界面(示例讲解)
Sep 06 jQuery
Three.js利用顶点绘制立方体的方法详解
Sep 27 Javascript
Angular弹出模态框的两种方式
Oct 19 Javascript
js时间戳与日期格式之间转换详解
Dec 11 Javascript
浅谈express.js框架中间件(middleware)
Apr 07 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
ftp类(myftp.php)
2006/10/09 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
php中json_decode()和json_encode()的使用方法
2012/06/04 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
jQuery 三击事件实现代码
2013/09/11 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
Python MD5文件生成码
2009/01/12 Python
Python模拟随机游走图形效果示例
2018/02/06 Python
python reverse反转部分数组的实例
2018/12/13 Python
对python调用RPC接口的实例详解
2019/01/03 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
法律工作求职自荐信
2013/10/31 职场文书
DIY手工制作经营店创业计划书
2014/02/01 职场文书
委托书范文
2014/04/02 职场文书
需求分析说明书
2014/05/09 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
建筑安全生产目标责任书
2014/07/23 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS