>
设为首页
>
收藏本站
>
最新电影
首页
运营资讯
今日英语
图形图像
计算机技术
Asp编程
网站结构化
资源共享
休闲娱乐
访问新站
> 子栏目
Asp
|
Jsp
|
XML
|
XSL
|
Div+Css
|
自定义函数
|
数据库
|
脚本特效
您现在的位置:
首页
=>
后台技术
=>
脚本特效
订阅本栏目
代码高亮度显示
时间: 2007-09-25 15:03:23 阅读次数:1730
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>编辑中对应的颜色</title> <style> * { margin:0px; padding:0px; } html, body { background-color:buttonface; width:100%; height:100%; overflow:hidden; border-width:0px; font-size:13px; font-family:Verdana Arial 宋体; color:#333333; } #divMain { overflow:hidden; } #divTools { width:100%; height:20px; line-height:20px; overflow:hidden; border-bottom:1px solid buttonshadow; margin:0px; padding:0px; padding-left:10px; background-color:buttonface; color:black; } #divTools a { display:block; float:left; height:20px; padding-left:15px; padding-right:15px; line-height:20px; text-align:center; overflow:hidden; color:black; text-decoration:none; } #divTools a:hover {background-color:gold;color:black;} #divTools a:active {background-color:navy;color:white;} #editDiv { position:relative; border:1px inset buttonface; width:94%; height:400px; overflow:auto; padding:5px; margin:2px 15px 0px 15px; background-color:white; display:block; } #show { position:relative; border:1px inset buttonface; width:94%; height:400px; overflow:auto; padding:5px; margin:2px 15px 0px 15px; background-color:white; display:none; } </style> </head> <body onload="abc(editDiv);w_size(0)" style="margin:0 0 0 0;padding:0 0 0 0;overflow:hidden"> <div id="divMain"> <div id="divTools"> <a href="javascript:void(w_size(0));" id="viewButton01" >代码视图</a> <a href="javascript:void(w_size(1));" id="viewButton02" >预览视图</a> </div> <DIV ID="editDiv" onkeyup="yanse()" contentEditable="true"> <html><br> <head><br> <title>一个简单的万年历_Test by 编程浪子</title><br> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br> <br> <script language="javascript"><br> //定义一个日历类<br> function CalClass()<br> {<br> this.getDaysOfMonth=function(year,month) //获取指定年月的天数<br> {<br> var disLeapYear=year%4||!(year%100)&&year%400;<br> return month==2?(disLeapYear?28:29):(/4|6|9|11/.test(month)?30:31);<br> }<br> <br> this.getMonthName=function(month) // 获取中文月份<br> {<br> return (month>9?"十":"")+"一二三四五六七八九十".charAt(month%10-1)+"月";<br> }<br> <br> this.getCal=function(year,month) //获取日历界面<br> {<br> var lastDate=this.getDaysOfMonth(year,month);<br> var strMonthName=this.getMonthName(month);<br> <br> var str="<caption><b>"+year+"年"+strMonthName+"</b></caption>";<br> str+="<tr>"+"一二三四五六天".replace(/(.)/g,"<td>星期$1</td>")+"</tr>";<br> for(var i=1;i<=(new Date(year,month-1,1).getDay()-1);i++) str+="<td> </td>";<br> for(var j=1;j<=lastDate;j++) str+="<td>"+j+"</td>";<br> str='<table border="5">'+ str.replace(/((<td>[\d ]+<\/td>){7})/g,"<tr>$1</tr>") +'</table>';<br> return str;<br> }<br> }<br> <br> var isIE=/msie/i.test(window.navigator.userAgent); //判断浏览器类型<br> var myCal=new CalClass();<br> <br> Date.prototype.getNow=function() //定义一个中文时间的prototype<br> {<br> var hour=this.getHours();<br> return (hour%12?hour%12:12) + (/\d+(:\d+):\d+/.exec(this)[1]) + (hour<12?"AM":"PM");<br> }<br> <br> function InitCalUI() //初始化日历界面<br> {<br> var now=new Date();<br> var str=myCal.getCal(now.getYear()+(isIE?0:1900),now.getMonth()+1);<br> var today=now.getDate();<br> str=str.replace("<td>"+today+"</td>","<td>"+today+"<br/>"+now.getNow().fontcolor("brown")+"</td>");<br> document.getElementById("divCalendar").innerHTML=str;<br> <br> str="";<br> for (var i=1980;i<=2008;i++) str+="<option>"+i+"</option>";<br> str='<select name="selYear">'+str+'</select>年';<br> str+='<select name="selMonth">'<br> +'.1.2.3.4.5.6.7.8.9.10.11.12'.replace(/\.(\d+)/g,'<option>$1</option>')<br> +'</select>月 ';<br> str+='<button onclick="ChangeCalUI()">查看</button>';<br> str="<form>"+str+"</form>";<br> document.getElementById("divSelDate").innerHTML=str;<br> }<br> <br> function ChangeCalUI() //日期变动时相应的日历界面<br> {<br> var selYear=document.forms[0].selYear;<br> var selMonth=document.forms[0].selMonth;<br> var year=selYear.options[selYear.selectedIndex].text;<br> var month=selMonth.options[selMonth.selectedIndex].text;<br> document.getElementById("divCalendar").innerHTML=myCal.getCal(year,month);<br> }<br> </script><br> </head><br> <body onload="InitCalUI();"><br> <div id="divCalendar"></div><br> <div id="divSelDate"></div><br> </body><br> </html><br> </DIV> <DIV ID="show"></DIV> </div> <script> //event.cancelBubble=true; //********************************* //原作者:风云舞 //本程序需要IE浏览器版本高于IE5.5才能正常调试,另移植到iframe上道理应该相同 //*********************************以下 function editDiv.onkeypress(){ if(event.keyCode==13){ var txtobj=document.selection.createRange() txtobj.text==""?txtobj.text="\n":(document.selection.clear())&(txtobj.text="\n") //三目复合表达式,解决有被选文字时回车的光标定位问题 document.selection.createRange().select() return false } if(event.keyCode==32){ var txtobj=document.selection.createRange() txtobj.text==""?txtobj.pasteHTML(" "):(document.selection.clear())&(txtobj.pasteHTML(" ")) //三目复合表达式,解决有被选文字时回车的光标定位问题 document.selection.createRange().select() return false } } function w_size(id){ // 重新计算输入区域大小 editDiv.style.width=document.body.clientWidth-50+"px"; editDiv.style.height=document.body.clientHeight-50+"px"; show.style.width=document.body.clientWidth-50+"px"; show.style.height=document.body.clientHeight-50+"px"; if(id==1){ // 转到预览视图 editDiv.style.display="none"; show.style.display="block"; show.innerHTML=editDiv.innerText; viewButton02.style.backgroundColor="navy"; viewButton02.style.color="white"; viewButton01.style.backgroundColor=""; viewButton01.style.color=""; show.focus(); }else if(id==0){ // 转到代码视图 editDiv.style.display="block"; show.style.display="none"; viewButton01.style.backgroundColor="navy"; viewButton01.style.color="white"; viewButton02.style.backgroundColor=""; viewButton02.style.color=""; editDiv.focus(); } } function yanse(){ if (event.keyCode == 38 || event.keyCode == 40 || event.keyCode == 33 || event.keyCode == 34) { return true; } else{ //取得鼠标位置 tR0=document.selection.createRange(); tR1=tR0.duplicate(); tR1.expand("textedit"); tR0.setEndPoint("StartToStart",tR1); len=tR0.text.replace(/\r\n/g,"\r").length; if (event.keyCode == 13) {len=len+8;}else{len=len+7;} //取得鼠标位置 abc(event.srcElement); //移动鼠标位置 tR0.move("character",len); tR0.collapse(); tR0.select(); //移动鼠标位置 } } function abc(nr){ var str=nr.innerText; editDiv.innerText=str.replace(/\"/g,"\xff").replace(/\'/g,'\xfc'); var str1=nr.innerHTML; str1=change(str1); editDiv.innerHTML = str1.replace(/\xdf/gi,"<").replace(/\xdd/gi,">").replace(/\xff/g,""").replace(/\xfc/g,"'")//.replace(/\xef/g," ");//.replace(/\xde/g,"").replace(/\xfd/g," "); window.onresize=w_size; w_size(0); } function change(nr){ var text = nr; text = text.replace(/<FONT[^<>]*>/gi, "").replace(/<\/FONT[^<>]*>/gi,""); text = text.replace(/\r\n/gi,""); text = text.replace(/\s/g, " "); //text = text.replace(/\ /g, "\xef"); text = text.replace(/<(script)(.*?)>(.*?)(<\/script>)/gi,function (text,a,b,c,d){return addcolor("\xdf"+a+addcolor(bb(b),"blue")+"\xdd","#ff7070")+jscolor(replaces(c))+addcolor(replaces(d),"#ff7070")});//#ff7070js标签内容变色 text = text.replace(/<(style)(.*?)>(.*?)(<\/style>)/gi,function (text,a,b,c,d){return addcolor("\xdf"+a+addcolor(bb(b),"blue")+"\xdd","#996600")+style_color(replaces(c))+addcolor(replaces(d),"#996600")});//#996600style标签内容变色 text = text.replace(/<A(.*?)>(.*?)<\/A>/gim,"$2"); text = text.replace(/(<\/?)([a-z\:]+)(.*?)(>)/gi,function(str,a,b,c,d){return a+addcolor(b,"#0099FF")+addcolor(bb(c),"blue")+d});//#0099FF标签内容的颜色 text = text.replace(/(<\!\-\-)(.*?)(\-\->)/gi,function (text,a,b,c){return addcolor(a+X_font(b)+c,"gray")}); return text; } //以下是编辑器中的样式 function X_font(font){ font=font.replace(/<FONT[^<>]*>/gi, ""); font=font.replace(/<\/FONT[^<>]*>/gi,""); return font; } function replaces(js){//js专立变色 js=js.replace(/\</gi, "\xdf").replace(/\>/gi, "\xdd"); return js; } function addcolor(str,color){ if (str!=null){ str="<font color='"+color+"'>"+str+"</font>" return str; } } function style_color(Style){//style的内容变色 Style=Style.replace(/\<br>/gi,'\xfe'); Style=Style.replace(/(\xdf\!\-\-.*?\xfe)/gi,function(a,b){return addcolor(X_font(b),"gray")}); Style=Style.replace(/(\-\-\xdd)/gi,addcolor("$1","gray")); Style=Style.replace(/\xfe/gi,'<br>'); Style=Style.replace(/(.*?)(\{)(.*?)(\})/gi,addcolor('$1$2',"#FF00FF")+X_font('$3')+addcolor("$4","#FF00FF")); Style=Style.replace(/(\:)/gi,addcolor('$1',"red")); return Style; } function bb(yinhao){//标签属性中引号内的颜色 if (yinhao!=null){ yinhao=yinhao.replace(/(\w+)(\=)([a-z\:]+)/gi,'$1'+"$2"+addcolor('$3','purple')); yinhao=yinhao.replace(/(\w+)(\=)(\xff.*?\xff)/gi,'$1'+"$2"+addcolor(X_font('$3'),'purple')); yinhao=yinhao.replace(/(\w+)(\=)(\xfc.*?\xfc)/gi,'$1'+"$2"+addcolor(X_font('$3'),'purple')); yinhao=yinhao.replace(/(\:)/gi,addcolor('$1',"red")); return yinhao; } } function jscolor(d){//js中关键字的颜色 if (d!=null){ d=d.replace(/\b((?!\xfc|\xff)([\d]+\.?[\d]+)(?!\xfc|\xff))\b/g,addcolor('$1','red')); d=d.replace(/\b((?:function|var|return|try|catch|throw|if|else|switch|for|while|do|int|double|float|void|char|public|private|protected|static|true|false|null|new|delete|event|this))\b/g,addcolor('$1','#800000')); d=d.replace(/(\\\xff)/g,'\xbf').replace(/(\\\xfc)/g,"\xbd"); d=d.replace(/(<br>)/gi,"\r\n"); //解决引号换行问题 d=d.replace(/(\xfc.*?\xfc)/gi,function (a,b){return addcolor(X_font(b.replace(/(\/\/)/g,"\xed")),'green')}); d=d.replace(/(\xff.*?\xff)/gi,function (a,b){return addcolor(X_font(b.replace(/(\/\/)/g,"\xed")),'green')}); d=d.replace(/(\r\n)/g,"<br>"); d=d.replace(/(\xbf)/g,'\\"').replace(/(\xbd)/g,"\\'"); d=d.replace(/\<br>/gi,'\xfe'); //解决//注析中的内容显示其他颜色的问题 d=d.replace(/(\/\/.*?\xfe)/gi,function (a,b){return addcolor(X_font(b),'gray')}) d=d.replace(/\xfe/gi,'<br>'); //解决//注析中的内容显示其他颜色的问题 d=d.replace(/(\xed)/g,"//"); //解决<a>中href的//变灰问题 d=d.replace(/(\/\*)(.*?)(\*\/)/gi,function (str,a,b,c){return addcolor(a+X_font(b)+c,'gray')}); return d; } } </script> </body> </html>
提示:您可以先修改部分代码再运行
飞飞As,p技术乐园
站内搜索
:
标题
内容
下一篇
模拟火焰
上一篇
js实现最大化、最小化、关闭窗口功能
本栏目最新
栏目最新列表
xhEditor v1.1.7 发布,国产开源XHTML在线编
收集的一些轻量级非常实用的前端开发小工具
javascript中cookie的设置,读取,删除
jquery插件:飞飞表情插件v1.0_[普通表情/魔
Jquery插件:textarea使用“autoresize”自
网站优化策划
栏目最新列表
增加网站外链的快速方法
网站上线前必做的30个检查
新的友情链接参考标准(没有google的PR情况
优化Google的AdSense广告的五个工具
王通讲SEO八大基础
站点最新
站点最新列表
微博推广的一些技巧
xhEditor v1.1.7 发布,
收集的一些轻量级非常实
50个新鲜兼容最新版本的
javascript中cookie的设
Excel中出现#VALUE!、#D
jquery插件:飞飞表情插件
十个使用HTML5开发的精彩
支持HTML5的浏览器有哪些
飞妮莫属:漫画:如何写出
历史最热10条信息
MIME介绍 及
[
1
] [
2
] [
3
]
巧用Google和迅雷来下载
Transact SQL 常
[
1
] [
2
]
VIA Rhine II Fast Ethe
电脑常用端
[
1
] [
2
] [
3
]
Do you get a kick out
十道羊皮卷 欣赏+mp3版+
每日一句:A friend and
每日一句:Theres no tu
经典__悟透JavaScript
伟哥博客
西安房产
123最新电影
三四六四
关于站点
|
免责声明
|
联系站长
|
网站地图
|
陕ICP备07002804号
WEB技术QQ交流群:72840059
©2007 ffasp.com. 版权所有