给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编辑器加上运行代码框功能


猜你喜欢
- 一、前言大多数编译型语言,变量在使用前必须先声明,其中C语言更加苛刻:变量声明必须位于代码块最开始,且在任何其他语句之前。其他语言,想C++
- 当我们准备建立一个Web站点时,就必须向域名登记机构申请一个Internet域名,因此,我们通常希望了解自己准备使用的域名是否已经被注册,这
- 除了数字,Python中最常见的数据类型就是字符串,无论那种编程语言,字符串无处不在。例如,从用户哪里读取字符串,并将字符串打印到屏幕显示出
- 在进行特征工程、划分数据集的工作中,drop()函数都能派上用场。它可以轻松剔除数据、操作列和操作行等。drop()详细的语法如下:删除行是
- 今天要介绍的是,如何生成一个"继承"多个对象的实例。 比如,现在有一个"动物"对象的构造函数, fu
- 今天在使用PyTorch中Dataset遇到了一个问题。先看代码class psDataset(Dataset): def __
- 翻译整理:Young.J;官方网站:http://jquery.comjQuery是一款同prototype一样优秀js开发库类,特别是对c
- 平面设计 常用尺寸 三折页广告 标准尺寸: (A4)210mm x 285mm普通宣传册 标准尺寸: (A4)210mm x 285mm文件
- NumPy's main object is the homogeneous multidimensional array. It
- 前些日子有网友问:将ASP纪录集输出成n列的的表格形式显示的方法?现在写了一个,方便大家使用。'定义变量 Dim cn,r
- 区块链概念狭义:区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码方式保证的不可篡改和不可伪造的分布式账本
- 当然,如果你的网站文章中有图片,那么请记得一定要打上自己的LOGO,而且这个LOGO不要固定在这些图片的某个角落里,一定要随机出现在图片的任
- CPU活动展示导入模块,创建画板,创建画笔进行绘画出cpu的数据,一定要用线程,负责会卡住哦实现代码import tkinterfrom t
- 对于一般的图像提取轮廓,介绍了一个很好的方法,但是对于有噪声的图像,并不能很好地捕获到目标物体。比如对于我的鼠标,提取的轮廓效果并不好,因为
- 在numpy的ndarray类型中,似乎没有直接返回特定索引的方法,我只找到了where函数,但是where函数对于寻找某个特定值对应的索引
- Django部署到Cenos7需要安装大量的依赖包, 有很多坑需要踩, 这里是踩坑后探索出的标准化步骤实验环境: 腾讯云centos7用ce
- argparse是python标准库里面用来处理命令行参数的库命令行参数分为位置参数和选项参数:位置参数就是程序根据该参数出现的位置来确定的
- 一、分析链接上一篇文章指路一般来说,我们参加某个网站的盖楼抽奖活动,并不是仅仅只参加一个,而是多个盖楼活动一起参加。这个时候,我们就需要分析
- 李开复曾经在年前表示,谷歌公司会在今年春节期间,对Google谷歌的搜索结果页进行“从未有过的尝试”修改,以凸显农历春节的喜庆气氛。现在,输
- 开发个人博客时往往避免不了分页功能的实现,实现方法大体上分为函数和类两种。本文基于类实现分页功能,以下是详细代码:class Page: p