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

时间:2022-09-20 20:19:15
  1. Function content_Code(Str)  

  2. dim ary_String,i,n,n_pos  

  3. ary_String=split(Str,"[ code ]")  

  4. n=ubound(ary_String)  

  5. If n<1 then  

  6. content_Code=Str  

  7. Exit function  

  8. End If  

  9. for i=1 to n  

  10. n_pos=inStr(ary_String(i),"[/ code ]")  

  11. If n_pos>0 then  

  12. 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 />" & _  

  13. right(ary_String(i),len(ary_String(i))-n_pos-6)  

  14. Else  

  15. ary_String(i)="[code]" & ary_String(i)  

  16. End if  

  17. next  

  18. content_Code=join(ary_String,"")  

  19. End Function  


使用方法也很简单: 
发表文章时需用使用“运行代码”功能的,主要前后加上 
[ code ][/ code ] 
比如: 
[复制此代码]CODE: 

  1. [ code ]  

  2. <script type="text/javascript">  

  3. alert("简单吧");  

  4. </script>  

  5. [/ code ]  


需要注意的是,在显示的页面要进入以下javascript: 

  1. function runCode(obj) {  

  2. var winname = window.open(''"_blank"'');  

  3. winname.document.open('text/html''replace');  

  4. winname.opener = null  

  5. winname.document.writeln(obj.value);  

  6. winname.document.close();  

  7. }  

  8. function copycode(obj) {  

  9. var rng = document.body.createTextRange();  

  10. rng.moveToElementText(obj);  

  11. rng.scrollIntoView();  

  12. rng.select();  

  13. rng.execCommand("Copy");  

  14. rng.collapse(false);  

  15. }  

  16. function saveCode(obj) {  

  17. var winname = window.open('''_blank''top=10000');  

  18. winname.document.open('text/html''replace');  

  19. winname.document.write(obj.value);  

  20. winname.document.execCommand('saveas','','code.htm');  

  21. winname.close();