shawl.qiu Javascript 语法高亮函数 v1.1
说明:长话短说, 本函数最适合只使用 <>& 这三个字符编码的内容.
演示什么的, 要说清楚这个函数要很多口水, 鄙人最近没太多时间可口水...
目前支持语法高亮的语言有: css, xml, javascript, asp/vbscrip, asp/jscript.
* 待加: 后续版本将会逐渐支持: c#.net, Jscript.net, T-SQL.
* 提示: 使用 xml 选项可作用于 html && xhtml
目录:
1. fHighlight(sStr, sOpt) 源代码
2. 调用参考(只是参考, 我没时间做演示)
附:
1. 下载原格式
http://files.myopera.com/btbtd/javascript/function/fHighlight_v_1.1.7z
提示: 本函数可在 客户端-js/服务端-Jscript 环境使用
shawl.qiu
2006-12-23
http://blog.csdn.net/btbtd
1. fHighlight(sStr, sOpt) 源代码
- /*------------------------------------------------------------*/
- * shawl.qiu Javascript 语法高亮函数 v1.1
- * ---/----------------------------------
- * 参数说明:
- * sStr: 字符串, 要进行语法高亮的字符串.
- * sOpt: 字符串, 要进行语法高亮的语言, all 为编码全部可用语法.
- * ---/----------------------------------
- * 目前支持语法高亮的语言有: css, xml, javascript, asp/vbscrip, asp/jscript.
- * 可用 sOpt 值:
- * css && css_ && xml && javascript && javascript_
- * aspjscript && aspjscript_ && aspvbscript && aspvbscript_
- * 注: 不加 _ 表示精确匹配, 加 _ 表格模糊匹配.
- * ---/----------------------------------
- * 待加: 后续版本将会逐渐支持: c#.net, Jscript.net, T-SQL.
- * 提示: 使用 xml 选项可作用于 html && xhtml
- * ---/----------------------------------
- * 特别注意: 本函数采用 ###字符### 作为特别标记, 因此, 为了不出错,请将 # 字符进行编码.
- * 如: # -> #
- /*------------------------------------------------------------*/
- //-------------------------begin function fHighlight(sStr, sOpt)-----------------------//
- function fHighlight(sStr, sOpt){
- if(!sStr||sStr.replace(//s+/g,'').length<0)return false;
- if(!sOpt) var sOpt='all';
- sOpt=sOpt.toLowerCase();
- try{return rpls(sStr, sOpt)}catch(e){};
- function rpls(sStr, sOpt){
- if(!sOpt) var sOpt='all';
- //------------------------------begin javascript
- if(//bjavascript/b/ig.test(sOpt)||sOpt=='all'){
- sStr=sStr.replace(//</;script.*?/>/;[/s/S]*?/</;//script/>/;/gi,
- function (m){
- m=m.replace(/(/</;script.*?/>/;)([/s/S]*?)(/</;//script/>/;)/ig, function ($1,$2,$3,$4){
- $2=$2.replace(//</;script.*?/>/;/ig, function (m_){
- m_=m_.replace(/([a-z]+)/=(/'|/")(/S+)/2/gi,
- '<span style="color:blue;">$1</span>=$2<span style="color:fuchsia;">$3</span>$2');
- m_=m_.replace(//</;script/i,'/</;<span style="color:red">script</span>');
- return m_;
- });
- $3=javascript($3);
- $4=$4.replace(/script/i,'<span style="color:red">script</span>');
- return $2+$3+$4;
- });
- return m;
- });
- }
- //------------------------------end javascript
- // begin javascript_
- if(//bjavascript/_/b/gi.test(sOpt))return javascript(sStr);
- //------------------------------end javascript_
- // begin asp/jscript
- if(//baspjscript/b/gi.test(sOpt)||sOpt=='all'){
- sStr=sStr.replace(//</;/%[/s/S]*?/%/>/;/g,function(m){
- return aspJscript(m);
- });
- }
- //------------------------------end asp/jscript
- // begin aspjscript_
- if(//baspjscript/_/b/gi.test(sOpt))return aspJscript(sStr);
- //------------------------------end aspjscript_
- // begin aspvbscript
- if(//baspvbscript/b/gi.test(sOpt)||sOpt=='all'){
- sStr=sStr.replace(//</;/%[/s/S]*?/%/>/;/g,function(m){
- return aspVbscript(m);
- });
- }
- //------------------------------end aspvbscript
- // begin aspvbscript_
- if(//baspvbscript/_/b/gi.test(sOpt)){
- return aspVbscript(sStr);
- }
- //------------------------------end aspvbscript_
- // begin css
- if(//bcss/b/gi.test(sOpt)||sOpt=='all'){
- sStr=sStr.replace(//</;style.*?/>/;[/s/S]*?/</;//style/>/;/gi,function(m){
- return css(m);
- });
- }
- //------------------------------end css
- // begin css_
- if(//bcss/_/b/gi.test(sOpt))return css(sStr);
- //------------------------------end css_
- // begin xml
- if(//bxml/b/gi.test(sOpt)||sOpt=='all'){
- // XML
- sStr=sStr.replace(//</;/?xml[^><]+(/>/;|)/gi, function(m){
- m=m.replace(/[a-z]+/=(/'|/").*?/1/gi,function(m_){
- m_=m_.replace(/(/'|")(.*?)/1/, '$1<span style="color:fuchsia;">$2</span>$1')
- m_=m_.replace(/(.*?)/=/,'<span style="color:blue;">$1</span>=');
- return m_;
- });
- m=m.replace(//?([a-z-]+)/i,'?<span style="color:red;">$1</span>')
- return m;
- } );
- // ELEMENT
- sStr=sStr.replace(//</;/!ELEMENT[^><]+(/>/;|)/gi, function(m){
- m=m.replace(/ ([^(?,*+)|]+) /gi,' <span style="color:blue;">$1</span> ');
- m=m.replace(/(!ELEMENT)/gi,'<span style="color:red;">$1</span>');
- m=m.replace(//(([/s/S]+)/)/gi,function ($1){
- return $1.replace(/([/S]+)/gi,'<span style="color:fuchsia;">$1</span>')
- }
- );
- return m;
- } );
- // ATTLIST
- sStr=sStr.replace(//</;/!ATTLIST[^><]+(/>/;|)/gi, function(m){
- // <!ATTLIST title id CDATA #IMPLIED>
- m=m.replace(/ ([^#]+)/g, ' <span style="color:blue;">$1</span>');
- m=m.replace(/([#][^&]+)/g,'<span style="color:fuchsia">$1</span>');
- m=m.replace(/(!ATTLIST)/gi,'<span style="color:red;">$1</span>');
- return m;
- } );
- // ATTLIST 1
- sStr=sStr.replace(//</;/!ATTLIST[^><]+(/>/;|)/gi, function(m){
- m=m.replace(/ ([^'!<>"" ]+)/gi,' <span style="color:blue">$1</span>');
- m=m.replace(//!(ATTLIST)/i,'!<span style="color:red;">$1</span>');
- m=m.replace(/([^=])(/'|/")([^/<> ]+)/2/g,'$1$2<span style="color:fuchsia;">$3</span>$2');
- return m;
- } );
- // DOCTYPE
- sStr=sStr.replace(//</;/!DOCTYPE[^><]+(/>/;|)/[/gi, function(m){
- m=m.replace(/ (/S+) /gi,' <span style="font-weight:bold">$1</span> ');
- m=m.replace(//!(DOCTYPE)/gi, '!<span style="color:red">$1</span>');
- return m;
- } );
- // IGNORE
- sStr=sStr.replace(//</;/!/[ (IGNORE|INCLUDE)[^><]+(/]/]/>/;|/>/;|)/gi, function(m){
- m=m.replace(/(/</;!/[) (IGNORE|INCLUDE)/,'$1 <span style="font-weight:bold">$2</span>');
- m=m.replace(/([^!])/[([/S ]+)/]/,'$1[<span style="color:fuchsia">$2</span>]')
- return m;
- } );
- // DOCTYPE 1
- sStr=sStr.replace(//</;/!DOCTYPE[^><]+(/>/;|)/gi, function(m){
- m=m.replace(/ ([^'!<>"" ]+)/gi,' <span style="color:blue">$1</span>');
- m=m.replace(//!(DOCTYPE)/i,'!<span style="color:red;">$1</span>');
- m=m.replace(/([^=])(/'|/")([^/<> ]+)/2/g,'$1$2<span style="color:fuchsia;">$3</span>$2');
- return m;
- } );
- // NOTATION
- sStr=sStr.replace(//</;/!NOTATION[^><]+(/>/;|)/gi, function(m){
- m=m.replace(/ ([^'!<>"" ]+)/gi,' <span style="color:blue">$1</span>');
- m=m.replace(//!(NOTATION)/i,'!<span style="color:red;">$1</span>');
- m=m.replace(/([^=])(/'|/")([^/<> ]+)/2/g,'$1$2<span style="color:fuchsia;">$3</span>$2');
- return m;
- } );
- // ENTYT(Y|IES)
- sStr=sStr.replace(//</;/!ENTIT(Y|IES)[^><]+(/>/;|)/gi, function(m){
- m=m.replace(/ ([^'!<>"" ]+)/gi,' <span style="color:blue">$1</span>');
- m=m.replace(//!(ENTIT(Y|IES))/i,'!<span style="color:red;">$1</span>');
- m=m.replace(/([^=])(/'|/")([^/<> ]+)/2/g,'$1$2<span style="color:fuchsia;">$3</span>$2');
- return m;
- } );
- // </markup/>
- sStr=sStr.replace(//</;(//|)[a-z0-9_/-:]+(/>/;| ///>/;|///>/;)/gi, function(m){
- m=m.replace(/(/</;(//|))([a-z0-9_/-:]+)/gi,'$1<span style="color:red;">$3</span>');
- return m;
- } );
- // <markup pram='value'/>
- sStr=sStr.replace(/<[^<>]+/=[^><]+(///>/;|/>/;|)/gi, function(m){
- m=m.replace(/([a-z:]+)( |)/=/gi,'<span style="color:blue;">$1</span>$2###=###');
- m=m.replace(/[#]{3}/=[#]{3}(/'|")([^<>'"]+)/g,
- '=$1<span style="color:fuchsia;">$2</span>');
- m=m.replace(//#{3}/=/#{3}/g,'=');
- m=m.replace(/(/</;)([^<>]+)/,'$1<span style="color:red;">$2</span>');
- return m;
- } );
- }
- //------------------------------end xml
- return sStr;
- }
- //---------------------------begin function css(sStr)--------------------//
- function css(sStr){
- sStr=sStr.replace(/([/w.#*:, /-]+?)/{([/s/S]+?)/}/g,function($1,$2,$3){
- if(//,/.test($2)){
- $2=$2.split(',');
- for(var i=0, j=$2.length; i<j; i++){
- $2[i]=$2[i].fontcolor('red');
- }
- $2=$2.join(',');
- } else $2=$2.fontcolor('red');
- $3=$3.replace(//&/#35/;/&/#35/;/&/#35/;/g,'###');
- $3=$3.replace(/([/w/-]+)/:(.*?)/;/g,function($1,$2,$3){
- $2=$2.fontcolor('blue');
- $3=$3.fontcolor('fuchsia');
- $3=$3.replace(//#{3}/g,'###');
- return $2+':'+$3+';';
- });
- return $2+'{'+$3+'}';
- });
- sStr=sStr.replace(/(/!important|/@import)/gi,
- '<span style="color:red;font-weight:bold;">$1</span>');
- sStr=sStr.replace(/(CDATA|/@charset)/gi,
- '<span style="color:black;font-weight:bold;">$1</span>');
- sStr=sStr.replace(*([^<>]+)/*///g,'/*<span style="color:#ccc">$1</span>*/');
- sStr=sStr.replace(/(/</;//)(style)(/>/;)/,'$1<span style="color:red;">$2</span>$3')
- sStr=sStr.replace(//</;style.*?/>/;/ig, function (m_){
- m_=m_.replace(/([a-z]+)/=(/'|/")(/S+)/2/gi,
- '<span style="color:blue;">$1</span>=$2<span style="color:fuchsia;">$3</span>$2');
- m_=m_.replace(//</;style/i,'/</;<span style="color:red">style</span>');
- return m_;
- });
- return sStr;
- }
- //---------------------------end function css(sStr)----------------------//
- //---------------------------begin function javascript(sStr)--------------------//
- function javascript(sStr){
- sStr=sStr.replace(/(/!/=/=|/=/=/=)/g,'###$1###');
- sStr=sStr.replace(/([^#=!*///])(/!/=|/=/=)/g,'$1###$2###');
- sStr=sStr.replace(/([^#=!*///])(/=)/g,'$1###$2###');
- sStr=sStr.replace(/([/w]+)/.([^!=><]*)(/(|/[/{|)([^!=><]*)(/)|/}|/})/gi,function(m_){
- m_=m_.replace(/(/(|/[|/{)(.*?)(/}|/]|/))/gi,'$1<span style="color:fuchsia">$2</span>$3');
- return m_.fontcolor('blue');
- })
- sStr=sStr.replace(/([a-z.0-9/[/]/-/+_]+)( |)([#]{3}(/!|/=|/*|//))/gi,function($1_,$2_, $3_, $4_){
- if(/(/[|/()/.test($2_)>-1){
- $2_=$2_.replace(/(/[|/))(.*?)(/)|/])/g,'$1<span style="color:fuchsia;">$2</span>$3' );
- }
- $2_='<span style="color:blue;">'+$2_+'</span>';
- return $2_+$3_+$4_;
- })
- sStr=sStr.replace(/([#]{3}[^a-z0-9]*?[#]{3})([^<>]+)/g, function($1_, $2_, $3_){
- $3_=$3_.replace(/(/{|/(|/[)([^/(/{/[]+)(/)|/}|/])/g,
- '$1<span style="color:fuchsia;">$2</span>$3');
- $3_='<span style="color:red;">'+$3_+'</span>';
- return $2_+$3_;
- })
- var re=new RegExp('//b(array|else|if|while|alert|var|try|catch|finaly|for|switch|case|'+
- 'default|function|return|break|null|false|true|new)//b','gi');
- sStr=sStr.replace(re,function($1){
- $1='<span style="font-weight:bold;">'+$1+'</span>';
- return $1;
- });
- // CDATA
- sStr=sStr.replace(/(/!/[)(CDATA)(/[)/gi,'$1<span style="font-weight:bold;">$2</span>$3');
- sStr=sStr.replace(/[#]{3}(.+?)[#]{3}/gi,'<span style="color:orange;">$1</span>');
- sStr=sStr.replace(/([^<>]+)/g,'//<span style="color:ccc;">$1</span>');
- sStr=sStr.replace(*[/s/S]*?/*///g,function(m_){
- m_=m_.replace(/>([/s/S]*?)</g,'><span style="color:#ccc;">$1</span><');
- return m_;
- });
- sStr=sStr.replace(*([^<>]+)/*///g,'/*<span style="color:#ccc">$1</span>*/');
- return sStr;
- }
- //---------------------------begin function aspJscript(sStr)--------------------//
- function aspJscript(sStr){
- sStr=javascript(sStr);
- sStr=sStr.replace(/(ActiveXObject|Enumerator)/gi,
- '<span style="font-weight:bold;color:black;">$1</span>');
- sStr=sStr.replace(//b(response|request)/b/gi,
- '<span style="color:red;">$1</span>');
- sStr=sStr.replace(//b(Open|write|movenext|addnew|update)/b/gi,
- '<span style="color:blue;">$1</span>');
- return sStr;
- }
- //---------------------------end function aspJscript(sStr)----------------------//
- //---------------------------begin function aspVbscript(sStr)--------------------//
- function aspVbscript(sStr){
- sStr=sStr.replace(//'([^/'<>]+)/g,'/'<span style="color:#ccc">$1</span>');
- sStr=sStr.replace(/(if)([^<>]+?)(then)/gi,function($1,$2,$3,$4){
- $3='<span style="color:blue;">'+$3+'</span>';
- return $2+$3+$4;
- });
- sStr=sStr.replace(//b(set)/b([^:<>]+)/=([^:<>]+)/gi,function($1,$2,$3,$4){
- $3='<span style="color:red">'+$3+'</span>';
- $4='<span style="color:blue">'+$4+'</span>'
- return $2+$3+'='+$4;
- });
- sStr=sStr.replace(/(function )(/S+?)/(/gi,function($1,$2,$3,$4){
- $3='<span style="color:red;font-weight:bold;">'+$3+'</span>';
- return $2+$3+'(';
- });
- sStr=sStr.replace(/((public|private)( function| sub| property [a-z]+|))([^:<>]+)/gi,
- function($1,$2,$3,$4,$5){
- if(//(/.test($5)){
- // $5='~~~'
- } else {
- if(//,/.test($5)){
- $5=$5.split(',');
- for(var i=0, j=$5.length; i<j; i++){
- $5[i]='<span style="color:blue;font-weight:bold;">'+$5[i]+'</span>';
- }
- $5=$5.join(',');
- }else $5='<span style="color:blue;font-weight:bold;">'+$5+'</span>';
- }
- return $2+$5;
- });
- sStr=sStr.replace(/(for )([^:<>]+)( to )([^:<>]+)/gi,function($1,$2,$3,$4,$5){
- $3='<span style="color:blue;">'+$3+'</span>';
- $4='<span style="color:black;font-weight:bold;">'+$4+'</span>';
- $5='<span style="color:blue;">'+$5+'</span>';
- return $2+$3+$4+$5;
- });
- sStr=sStr.replace(/(for each )(.*?)( in )([^:<>]+)/gi,function($1,$2,$3,$4,$5){
- $3='<span style="color:blue;">'+$3+'</span>';
- $5='<span style="color:red;font-weight:bold;">'+$5+'</span>';
- return $2+$3+$4+$5;
- });
- sStr=sStr.replace(/(class) ([/w]+)/gi,function($1,$2,$3){
- $2='<span style="color:black;font-weight:bold">'+$2+'</span>';
- $3='<span style="color:red;font-weight:bold;">'+$3+'</span>';
- return $2+' '+$3;
- });
- sStr=sStr.replace(/(end) (class)/gi,function($1,$2,$3){
- $3='<span style="color:black;font-weight:bold;">'+$3+'</span>'
- return $2+' '+$3
- });
- sStr=sStr.replace(//(([^<>]+)/)/g,function($1,$2){
- if(//(/.test($2)){
- $2=$2.replace(/([^()]+)/g,'<span style="color:fuchsia">$1</span>');
- }else $2='<span style="color:fuchsia;">'+$2+'</span>';
- return '/('+$2+'/)';
- });
- sStr=sStr.replace(//b(dim)/b ([^:<>]+)/gi,function($1,$2,$3){
- if(//,/.test($3)){
- $3=$3.split(',');
- for(var i=0, j=$3.length; i<j; i++){
- $3[i]='<span style="color:blue;font-weight:bold;">'+$3[i]+'</span>';
- }
- $3=$3.join(',');
- } else $3='<span style="color:blue;font-weight:bold;">'+$3+'</span>'
- return $2+' '+$3;
- });
- sStr=sStr.replace(/(response|request|server)/.([a-z]+)([^<>]+)/gi,function($1,$2,$3,$4){
- $2='<span style="color:blue">'+$2+'</span>';
- $3='<span style="color:blue">'+$3+'</span>'
- $4='<span style="color:gray">'+$4+'</span>'
- return $2+'.'+$3+$4
- });
- var re=new RegExp('//b(pattern|ignorecase|multiline|global|replace|left|right|len'+
- '|type|open|close|loadfromfile|read|write|savetofile|position|copyto|mode|readtext'+
- '|charset|writeBlankLines|ResponseText|send|createFolder|chr|chrb|lenb|mid|midb'+
- '|hex)//b','ig');
- sStr=sStr.replace(re,'<span style="color:blue;">$1</span>');
- var re=new RegExp('//b(class/_initialize|Class/_Terminate)//b','ig');
- sStr=sStr.replace(re,'<span style="color:red;">$1</span>');
- var re=new RegExp('//b(function|if|then|else|exit|set|with|end|private|sub'+
- '|public|for|next|each|redim|call|select|case|true|false|do|while|loop|until|and'+
- '|or|not|set|new|dim|property|get|let|in|option explicit|on error|resume|createObject'+
- '|preserve)//b','ig');
- sStr=sStr.replace(re,'<span style="color:black;font-weight:bold;">$1</span>');
- var re=new RegExp('//b(on error|resume)//b','ig');
- sStr=sStr.replace(re,'<span style="color:red;font-weight:bold;">$1</span>');
- return sStr;
- }
- //---------------------------end function aspVbscript(sStr)----------------------//
- }
- //-------------------------end function fHighlight(sStr, sOpt)-------------------------//
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>shawl.qiu template</title>
- <style type="text/css">
- /* <![CDATA[ */
/* ]]> */
- </style>
- <script type="text/javascript">
- //<![CDATA[
- function done(oObj){
- var html=oObj.document.body.innerHTML;
var oCbx=document.getElementsByName('nHighlight');
- var arCbx=[];
- var bHlFlag=false;
- for(var i=0, j=oCbx.length, k=0; i<j; i++ ){
- if(oCbx[i].checked){
- arCbx[k++]=oCbx[i].value;
- bHlFlag=true;
- }
- }
- if(bHlFlag){
- html=html.replace(//#{3}/g,'###');
- html=opener.fHighlight(html, arCbx.join(' '));
- }
var cCbxBlur=document.getElementsByName('nHighlightPrcs');
- var arCbxBlur=[];
- var bHlFlagBlur=false;
- for(var i=0, j=cCbxBlur.length, k=0; i<j; i++ ){
- if(cCbxBlur[i].checked){
- arCbxBlur[k++]=cCbxBlur[i].value;
- bHlFlagBlur=true;
- break;
- }
- }
- if(bHlFlagBlur){
- html=html.replace(//#{3}/g,'###');
- html=opener.fHighlight(html, arCbxBlur.join(' '));
- }
var oLn=document.getElementById('nPadLn');
- oLn.checked?oLn=true:oLn=false;
- if(oLn){
- html=html.split(/<br>|<br//>/i)
- for(var i=0, j=html.length; i<j; i++){
- html[i]='<li>'+html[i]+'</li>';
- }
- html=html.join('');
- html='<ol>'+html+'</ol>';
- } oLn=null;
- var oMoveSpace=document.getElementById('nMoveSpace');
- if(oMoveSpace.checked){
- html=html.replace(/ /g,' ');
- } oMoveSpace=null;
- var oMoveTab=document.getElementById('nMoveTab');
- if(oMoveTab.checked){
- html=html.replace(//t/g,' ');
- } oMoveTab=null;
- var oSelect=document.getElementById('nSelect');
- var sMarkup=oSelect.options[oSelect.selectedIndex].innerHTML;
- var sClassName='sq'+sMarkup.replace(/^./,function(m){return m.toUpperCase();});
- oMoveTab=null;
- opener.sqEditor.cmd('insertHTML', false,
- '<'+sMarkup+' class="'+sClassName+'">'+html+'</'+sMarkup+'>');
- opener.focus();
- self.close();
- }
- onload=function(){
- var multi=document.getElementsByName('nHighlightPrcs');
- for(var i=0, j=multi.length; i<j; i++){
- multi[i].onclick=function(){
- fSingle();
- }
- }
- var multi=document.getElementsByName('nHighlight');
- for(var i=0, j=multi.length; i<j; i++){
- multi[i].onclick=function(){
- fMulti();
- }
- }
- }
- function fMulti(){
- var o=document.getElementsByName('nHighlightPrcs');
- for(var i=0, j=o.length; i<j; i++){
- o[i].checked=false;
- }
- }
- function fSingle(){
- var o=document.getElementsByName('nHighlight');
- for(var i=0, j=o.length; i<j; i++){
- o[i].checked=false;
- }
- }
- //]]>
- </script>
- </head>
- <body>
- <h2>格式化数据</h2>
- <div >
- <b>语法高亮</b>:<br/>
- 精确替换(可多选):
- css:<input type="checkbox" value="css" name='nHighlight' />
- xml:<input type="checkbox" value="xml" name='nHighlight' />
- javascript:<input type="checkbox" value="javascript" name='nHighlight' />
- asp/jscript:<input type="checkbox" value="aspJscript" name='nHighlight' />
- asp/vbscript:<input type="checkbox" value="aspvbscript" name='nHighlight' />
- <br/>
- 模糊替换(只能选一):
- css:<input type="radio" value="css_" name='nHighlightPrcs' />
- javascript:<input type="radio" value="javascript_" name='nHighlightPrcs' />
- asp/jscript:<input type="radio" value="aspJscript_" name='nHighlightPrcs' />
- asp/vbscript:<input type="radio" value="aspVbscript_" name='nHighlightPrcs' />
- <p/>
- </div>
- <div id="main" style="width:700px;">
- <div style="float:right">
- <b>添加行号:</b>
- <input type='checkbox' id='nPadLn' checked='checked' /><br/>
- <b>实体化空格</b>
- <input type='checkbox' id='nMoveSpace' checked='checked' /><br/>
- <b>实体化跳格:</b>
- <input type='checkbox' id='nMoveTab' checked='checked' /><br/>
- <b>格式标签:</b>
- <select id='nSelect'>
- <option selected="selected">div</option>
- <option>p</option>
- <option>pre</option>
- <option>xmp</option>
- </select><br/>
- </div>
- <div style="float:left;">
- <iframe src="about:blank" id='ifmPre' width='550' height='350'></iframe>
- </div>
- </div>
- <br clear="both">
- <script type="text/javascript">
- //<![CDATA[
- var o=document.getElementById('ifmPre').contentWindow;
- o.document.designMode='on';
- o.document.contentEditable=true;
- o.document.open();
- o.document.write(' ')
- o.document.close();
- //]]>
- </script><br/>
- <button onclick="done(document.getElementById('ifmPre').contentWindow)">
- done</button>
- <button onclick="reset(document.getElementById('ifmPre').contentWindow)">
- rest</button>
- <button onclick='opener=null;self.close();'>
- close me</button>
- </body>
- </html>