给zblog加上运行代码功能

作者:荆棘鸟 来源:荆棘鸟's blog 时间:2007-12-19 13:07:00 

给zblog添加上“运行代码”的功能,这是“密陀僧”修改z-blog源码,给z-bog增添的新功能。这个方法出来很久了,我现在才加上还不晚吧,因为以后可能要贴出一些与时间相关的代码,所以用上这个“运行代码”的功能,是最为方便的了。

下面转一下方法,相关讨论参见“z-blog论坛”。如果你按如下步骤设置完毕,调用这个功能的方法是,在文章编辑区中加入" [ code ]  你的代码 [ /code ]",因为这是是演示,所以“中括号”与code之间留了空格,你实际用的时候,请去掉空格。

这个调用方法,是在请教Visc之后,才知道的,有时离成功就差这一步,在此感谢Visc的指点。

1、在script/common.js里面增加


//*********************************************************
// 目的: 代码运行框
// 输入: obj
// 返回: 
//*********************************************************
function copycode(obj) {
var rng = document.body.createTextRange();
var obj1=document.getElementById(obj)
rng.moveToElementText(obj1);
rng.scrollIntoView();
rng.select();
rng.execCommand("Copy");
rng.collapse(false);
}
function runCode(obj) {
var winname = window.open('', "_blank", '');
   var obj1=document.getElementById(obj)
winname.document.open('text/html', 'replace');
    winname.opener = null // 防止恶意修改
winname.document.writeln(obj1.value);
winname.document.close();
}
function saveCode(obj) {
var winname = window.open('', '_blank', 'top=10000');
   var obj1=document.getElementById(obj)
winname.document.open('text/html', 'replace');
winname.document.writeln(obj1.value);
winname.document.execCommand('saveas','','code.htm');
winname.close();
}

2、func/c_function.asp,查找Function TransferHTML(source,para),把



If Instr(para,"[space]")>0 Then source=Replace(source," "," ")


注释掉。


找到


objRegExp.Pattern="(\[CODE\])(.+?)(\[\/CODE\])"
      strContent=objRegExp.Replace(strContent,"<textarea class=""code"" name=""runcode0"" rows=""10"" cols=""50"">$2</textarea>")

修改为



Dim codeNum,rndStr
codeNum=0
Randomize
rndStr=int(rnd*100)
  
strContent=objRegExp.Replace(strContent,"<textarea class=""code"" name=""code"&rndStr&codeNum&""" id=""code"&rndStr&codeNum&""" rows=""10"" cols=""50"">$2</textarea><br /><input type=""button"" value=""运行代码"" onclick=""runCode('code"&rndStr&codeNum&"')""> <input type=""button"" value=""复制代码"" onclick=""copycode('code"&rndStr&codeNum&"')""> <input type=""button"" value=""另存代码"" onclick=""saveCode('code"&rndStr&codeNum&"')""> 提示:您可以先修改部分代码再运行")
codeNum=codeNum+1


关于这个rndStr,可以用文章id代替。但是可能产生重复代码框id。保险起见,还是使用了随机函数。

3、重建所有页面。

4、最后,试一下效果,因为在“可视编辑”状态中,编辑器不知给代码做了什么处理,导致不能运行,所以建议一些复杂代码,还是用“UBB编辑”保险。

相关文章推荐:如何给eWebEditor编辑器加上运行代码框功能

标签:zblog,运行代码,js
0
投稿

猜你喜欢

  • 巧用正则表达式获取新闻中图片地址

    2010-07-17 13:09:00
  • ASP获取当前页面URL地址(带参数)的方法

    2010-01-14 19:40:00
  • js表单验证控制代码大全

    2010-03-07 14:25:00
  • 让文本框textarea自动适应内容的高度

    2008-07-01 14:44:00
  • CSS处理斜角导航条的一个例子

    2007-08-27 12:38:00
  • 跨浏览器的inline-block[译]

    2009-03-11 21:04:00
  • 网页设计应急小技巧

    2011-10-05 18:52:57
  • 删除多余的属性 xmlns=""

    2010-08-24 18:41:00
  • fso对象CreateTextFile方法调用时“无效的过程调用或参数”错误

    2009-05-26 15:39:00
  • 解析Oracle 8i/9i的计划稳定性

    2010-07-26 13:09:00
  • 优雅地扩大链接响应区域

    2010-09-25 13:04:00
  • 支付宝lab logo设计创意发想

    2009-11-12 12:44:00
  • CSS网页布局开发时的常见问题小结

    2009-08-13 12:17:00
  • asp 延时 页面延迟的三种方法

    2011-03-31 11:04:00
  • 在JScript中使用RecordSet对象的GetRows方法

    2008-01-16 13:12:00
  • ASP教程:制作登陆验证页面程序

    2008-10-23 15:00:00
  • SQL 注入式攻击的终极防范

    2011-04-03 11:21:00
  • 如何让对方在线查看我的程序代码?

    2010-05-13 16:34:00
  • 用css+Javascript实现扫描线效果图片

    2007-11-08 19:12:00
  • asp dictionary对象的用法

    2011-04-14 11:09:00
  • asp之家 网络编程 m.aspxhome.com