在和尚那裡看到他給z-blog加上了運行代碼功能,放了幾天假,有些怕怕再這樣閒下去會生銹的,在補了一個半小時的覺之後,也給blog加上運行功能,因為是從L-Blog修改而來,因此同樣適用於L-Blog,另外,FBS也是L-Blog修改而來,應該也可以使用本文中的方法來添加運行代碼功能。另外,由於復制代碼和保存代碼還沒有找到兼容各浏覽器的解決方法,就沒有加進來了。
示例:
步驟如下:
1. 在 include/common.js 中添加如下代碼:
復制代碼 代碼如下:
function runCode(codeobjid) {
var codeobj=document.getElementById(codeobjid)
var codestr=codeobj.value;
if (codestr!="") {
var codewin=window.open('','','');
codewin.document.open('text/html','replace');
codewin.opener = null
codewin.document.write(codestr);
codewin.document.close();
}
}
2. 在 include/ubbcode.asp 中找到 strContent=re.Replace(strContent,"【code】")(把【】換成[]),在此之後添加如下代碼:
L-Blog:
復制代碼 代碼如下:
re.Pattern="\[html\](<br>)+"
strContent=re.Replace(strContent,"【html】")
FBS:
復制代碼 代碼如下:
re.Pattern="\[html\](<br />)+"
strContent=re.Replace(strContent,"【html】")
再找到 re.Pattern="\[code\](.*?)\[\/code\]",然後在段代碼的 Set strMatches=Nothing 之後添加如下代碼:
復制代碼 代碼如下:
re.Pattern="\[html\](.*?)\[\/html\]"
Set strMatches=re.Execute(strContent)
For Each strMatch In strMatches
RNDStr=Int(7999 * Rnd + 2000)
tmpStr1=strMatch.SubMatches(0)
strContent= Replace(strContent,strMatch.Value,"<textarea rows=""10"" "_
&"style=""width:90%;"" class=""input_border"" id=""HTML_"&RNDStr&""">"_
&tmpStr1&"</textarea><br />"_
&"<input type=""button"" onclick=""runCode('HTML_"&RNDStr&"');"" value=""運行代碼"" />"_
&" [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]")
Next
Set strMatches=Nothing
3. 修改完成,在發表日志時就可以使用【html】要運行的代碼【/html】(將【】替換成[])來使用運行代碼功能。