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 获取和设置Select选项的代码
Feb 07 Javascript
jQuery AJAX 调用WebService实现代码
Mar 24 Javascript
基于jquery封装的一个js分页
Nov 15 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
Aug 14 Javascript
js中window.open()的所有参数详细解析
Jan 09 Javascript
基于Angularjs实现分页功能
May 30 Javascript
javascript实现的左右无缝滚动效果
Sep 19 Javascript
vue2滚动条加载更多数据实现代码
Jan 10 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
Oct 19 Javascript
代码详解JS操作剪贴板
Feb 11 Javascript
JS实现小米轮播图
Sep 21 Javascript
javascript实现下拉菜单效果
Feb 09 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对数组排序代码分享
2014/02/24 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
教大家制作简单的php日历
2015/11/17 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
javascript基本类型详解
2014/11/28 Javascript
js获取页面description的方法
2015/05/21 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
python使用分治法实现求解最大值的方法
2015/05/12 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
css3实现动画的三种方式
2020/08/24 HTML / CSS
十一个高级MySql面试题
2014/10/06 面试题
服装设计专业自荐信
2014/06/17 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
作文评语怎么写
2014/12/25 职场文书
自我检讨书范文
2015/01/28 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL