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的$(document).ready()和onload的加载顺序
May 26 Javascript
js中获取事件对象的方法小结
Mar 13 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
Apr 18 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
用jquery中插件dialog实现弹框效果实例代码
Nov 15 Javascript
jQuery实现网页抖动的菜单抖动效果
Aug 07 Javascript
js代码实现无缝滚动(文字和图片)
Aug 20 Javascript
js验证真实姓名与身份证号,手机号的简单实例
Jul 18 Javascript
elementUI 设置input的只读或禁用的方法
Oct 30 Javascript
JavaScript解析机制与闭包原理实例详解
Mar 08 Javascript
layui多图上传实现删除功能的例子
Sep 23 Javascript
JavaScript实现贪吃蛇游戏
Jun 16 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
zend framework文件上传功能实例代码
2013/12/25 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
基于node.js实现微信支付退款功能
2017/12/19 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
django项目搭建与Session使用详解
2018/10/10 Python
Django中使用Celery的方法示例
2018/11/29 Python
python安装gdal的两种方法
2019/10/29 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
德国机车企业:FC-Moto
2017/10/27 全球购物
Sneaker Studio法国:购买运动鞋
2018/06/08 全球购物
费用会计岗位职责
2014/01/01 职场文书
我的动漫时代的创业计划书范文
2014/01/27 职场文书
公司委托书范本
2014/04/04 职场文书
如何撰写一封出色的求职信
2014/04/27 职场文书
对学校的意见和建议
2015/06/04 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
护理培训心得体会
2016/01/22 职场文书