asp下实现代码的“运行代码”“复制代码”“保存代码”功能源码

看到很多人需要,就放出来,好东西大家一起分享。 

代码如下:

Function content_Code(Str)  
  dim ary_String,i,n,n_pos  
  ary_String=split(Str,"[ code ]")  
  n=ubound(ary_String)  
  If n<1 then  
   content_Code=Str  
   Exit function  
  End If  
  for i=1 to n  
   n_pos=inStr(ary_String(i),"[/ code ]")  
   If n_pos>0 then  
    ary_String(i)="<br /><textarea class=gocode id=runcode"&i&" name=runcode"&i&">" & server.HTMLEncode(left(ary_String(i),n_pos-1))&"</textarea><br /><input type=button class=input-code value=运行代码 onclick=runCode(runcode"&i&")><input type=button class=input-code value=复制代码 onclick=copycode(runcode"&i&")><input type=button class=input-code value=另存代码 onclick=saveCode(runcode"&i&")><span class=code-tishi>提示:您可以先修改部分代码再运行</span><br />" & _  
     right(ary_String(i),len(ary_String(i))-n_pos-6)      
   Else  
    ary_String(i)="[code]" & ary_String(i)  
   End if    
  next  
  content_Code=join(ary_String,"")  
 End Function 

使用方法也很简单:

发表文章时需用使用“运行代码”功能的,主要前后加上

[ code ][/ code ]
比如:

代码如下:

[ code ]  
<script type="text/javascript">  
alert("简单吧");  
</script>  
[/ code ] 
需要注意的是,在显示的页面要进入以下javascript:

代码如下:

function runCode(obj) {  
        var winname = window.open('', "_blank", '');  
        winname.document.open('text/html', 'replace');  
        winname.opener = null   
        winname.document.writeln(obj.value);  
        winname.document.close();  
}  

function copycode(obj) {  
  var rng = document.body.createTextRange();  
  rng.moveToElementText(obj);  
  rng.scrollIntoView();  
  rng.select();  
  rng.execCommand("Copy");  
  rng.collapse(false);  
}  
function saveCode(obj) {  
        var winname = window.open('', '_blank', 'top=10000');  
        winname.document.open('text/html', 'replace');  
        winname.document.write(obj.value);  
        winname.document.execCommand('saveas','','code.htm');  
        winname.close();  
} 

相关推荐