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:

  [ 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();

  }