给zblog加上运行代码功能
作者:荆棘鸟 来源:荆棘鸟's blog 发布时间:2007-12-19 13:07:00
标签:zblog,运行代码,js
给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编辑器加上运行代码框功能
0
投稿
猜你喜欢
- select 终极美化,主要是针对下拉框的美化一个很古老的话题了,不过貌似目前为止也没有比较好的做到,在jxdawei的基础上做了
- 如果有空格就用%20代替,如果有其它字符就用%ASCII代替,如果有汉字等四个字节的字符,就用两个%ASCII来代替。不过有时候我们也需要将
- 首先,我要在这里写上一些很官方的概念,意在说明面向对象是很具体化的,很实体的模式,不能让有些人看见“对象&rdq
- <%''调用例子'Dim int_RPP,int_Start,int_showNumberLink
- 来看看效果图对比:字符验证码: → 加法验证码:优点:①与纯字符验证码相比,本程序效防止了绝大部分(99%以上)广告机的自动识别。即使是中文
- Internet Explorer 8 Beta 测试了一年多之后,今天,IE8 终于发布了。它绝对好过 IE7,还有一些不错的新功能,如
- 服务器响应HTTP的类型ContentType大全,使用方法:<% Response.ContentType =&
- 这里的等价不是说function的toString相同,也不是说function的引用相同,而是说对于两个function A和B,如果它们
- 这个是JS控制图片滚动的效果,当鼠标结果新闻标题时开始滚动到对应的图片,可以作为图片新闻。效果图:<!DOCTYPE HTML PUB
- 1、卓越亚马逊的首页轮换图片,每刷新一次,都是随机不同的顺序显示,这样的设计解决了对于较多图片轮换而靠后的图片信息很少被看到的问题,这点对于
- 大家都知道,在ASP中可以使用Request.ServerVariables("REMOTE_ADDR")来取得客户端的
- 【原文地址】 Recipe: Deploying a SQL Database to a Remote Hosting Environmen
- 那你也许会问及,怎样获取当前系统日期的最大时间值,如yyyy-MM-dd 23:59:59.997。 我们可以使用DATEADD函数,来实现
- 在oracle数据库的开发中,常因为时间的问题大费周章,所以特地将ORACLE数据的日期函数收藏致此。乃供他日所查也。 add_months
- 1 逻辑数据库和表的设计数据库的逻辑设计、包括表与表之间的关系是优化关系型数据库性能的核心。一个好的逻辑数据库设计可以为优化数据库和应用程序
- 为新项目写的一份规范文档, 分享给大家. 我想前端开发过程中, 无论是团队开发, 还是单兵做站, 有一份开发文档做规范, 对开发工作都是很有
- 一、目的之前在博文SQL Server数据库最小宕机迁移方案中提到了使用了完全备份+差异备份的功能完成了数据库的转移,但是这个方法在遇到了7
- 最简单的方法:取整后判断是否和原值相等!javascript的取整函数是:parseIntif(parseInt(value)==value
- 一段重用很高的ajax代码,可以套用 <!DOCTYPE HTML
- 计算分页,嘿嘿一次搞定不用判断intNumPage = Abs(Int(-(intNumRecord/intPerPage)))