asp学习网: 首页 >> 程序参考 >> 给zblog加上运行代码功能补允

给zblog加上运行代码功能补允

转载出自:http://yuhua.yfidc.com/post/388.shtml

给zblog加上运行代码功能

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

function copycode(obj) {
var rng = document.body.createTextRange();
rng.moveToElementText(obj);
rng.scrollIntoView();
rng.select();
rng.execCommand("Copy");
rng.collapse(false);
}

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 saveCode(obj) {
var winname = window.open('', '_blank', 'top=10000');
winname.document.open('text/html', 'replace');
winname.document.writeln(obj.value);
winname.document.execCommand('saveas','','code.htm');
winname.close();
}




2、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>")



修改为

objRegExp.Pattern="(\[CODE\])(.+?)(\[\/CODE\])"
strContent=objRegExp.Replace(strContent,"<textarea class=""code"" name=""runcode0"" rows=""10"" cols=""50"">$2</textarea><br /><input type=""button"" value=""运行代码"" onclick=""runCode(runcode0)""> <input type=""button"" value=""复制代码"" onclick=""copycode(runcode0)""> <input type=""button"" value=""另存代码"" onclick=""saveCode(runcode0)""> 提示:您可以先修改部分代码再运行")



3、重建所有页面。

说明:本修改针对zblog1.6版本,其它版本请对照修改。

今天突然发现Blog的代码运行功能出了点问题,当一个页面出现两个[code]时发生不可RUN的错误,检查代码

发现问题代码"runcode0"用了一个常量来赋值,这样一来造成以上问题发生。解决办法如下:

解决思路:用一个变量赋值,让它循环或者随机一个不同的值,这样就可以一个页面出现多个[code],是不是很爽!

For strID=0 To 1000
strID=strID+1
Next



strID=Int(7999 * Rnd + 2000)



代码修改实例:

1、参照上面原码在script/common.js里面修改如下:




function copycode(obj) {
var obj=document.getElementById(obj);
var rng = document.body.createTextRange();
rng.moveToElementText(obj);
rng.scrollIntoView();
rng.select();
rng.execCommand("Copy");
rng.collapse(false);
//}
}

function runCode(obj) {
var obj=document.getElementById(obj);
var winname = window.open('', "_blank", '');
winname.document.open('text/html', 'replace');
winname.opener = null // 防止代码对论谈页面修改
winname.document.writeln(obj.value);
winname.document.close();
//}
}
function saveCode(obj) {
var obj=document.getElementById(obj);
var winname = window.open('', '_blank', 'top=10000');
winname.document.open('text/html', 'replace');
winname.document.writeln(obj.value);
winname.document.execCommand('saveas','','code.htm');
winname.close();
//}
}



2、c_function.asp里面修改如下:



objRegExp.Pattern="(\[CODE\])(.+?)(\[\/CODE\])"
Dim strID
strID=Int(7999 * Rnd + 2000)
strContent=objRegExp.Replace(strContent,"<textarea class=""code"" ID="""& strID & """" rows=""10"" cols=""50"">$2</textarea><br /><input type=""button"" value=""运行代码"" onclick=""runCode('"&strID&"')""> <input type=""button"" value=""复制代码"" onclick=""copycode('"&strID&"')""> <input type=""button"" value=""另存代码"" onclick=""saveCode('"&strID&"')""> 提示:您可以先修改部分代码再运行")


3、修改完毕重建所有页面。

代码效果请看:http://yuhua.yfidc.com/post/458.shtml

from:asp学习网/title:给zblog加上运行代码功能补允/ time:2006-12-12 17:18:14

本文主题给zblog加上运行代码功能补允

asp教程 ©2006-2007 aspxuexi.com | 关于站点 | 版权隐私 | 站内搜索
复制或者翻版 请于夜间进行