• RainbowSoft Studio Z-Blog
  • RainbowSoft Studio Z-Blog
  • 本站支持WAP访问
  • 订阅本站的 RSS 2.0 新闻聚合
Name:密陀僧
Email:sunwindy[A]gmail.com

给zblog加上运行代码功能

Post by 密陀僧, 2006-7-24, Views:
12月3日更新,修复同一页面多个代码运行框不能正常运行的bug。
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、重建所有页面。

说明:本修改针对zblog1.6版本,其它版本请对照修改。在firefox1.5,IE6下测试通过。复制和保存功能ff下无效。
如有疑问,请在下面留言。BY 密陀僧,转载请注明来源。

提示:您可以先修改部分代码再运行

提示:您可以先修改部分代码再运行
Tags: zblog  修改  运行代码 
分类:技术 | 评论:22 | 引用:0 | 点击这里获取该日志的TrackBack引用地址
上一篇:语言之趣
下一篇:html+css做圆角表格

或许你还对下面的文章感兴趣

Comments

  • quote 1.mstz
  • http://www.mstz.net/
  • 对程序不懂,我也想请问小和尚:这是做甚么用的?
    另外:看你在论坛的帖子,莫非你也喜欢拣破烂吗?
  • 2006-7-24 16:36:41 回复
  • quote 2.密陀僧
  • 效果见http://0e2.net/post/421.html

    梦石堂兄,送几个破烂给偶吧Haha
  • 2006-7-24 16:40:58 回复
  • quote 3.mstz
  • http://www.mstz.net/
  • 恩,看明白了.很少涉及这类的文章,对我来说用处就不大了.对你们来说还是很好用的.
    拣破烂的甚么都缺,就是不缺破烂,不过不知你喜欢甚么样的东西.来这里这么久了,还不知你是哪里的,如果你是东北的,可以来沈阳我这儿挑啊.
  • 2006-7-24 19:24:23 回复
  • quote 4.密陀僧
  • 偶在上海咯
    等偶有钱啦偶就去沈阳
    Haha

    HotHeart:偶也发现这个问题了,FF下会提示变量未定义错误(runcode0 is not defined),偶对js不是很熟练,请高手指点。
  • 2006-7-24 20:09:03 回复
  • quote 5.wonnia
  • 看见代码就头晕阿~~#¥)(啊———((*
  • 2006-7-24 22:25:46 回复
  • quote 6.密陀僧
  • 终于完美了
    多谢Shame

    一剑,效果见 http://0e2.net/post/421.html
    你看了就知道了。
  • 2006-7-25 17:26:54 回复
  • quote 8.密陀僧
  • to freesky
    请看:
    引自 HotHeart
    呃……忘了说了,给textarea加上id属性
    &lt;textarea id="runcode0" ....
  • 2006-7-30 23:10:04 回复
  • quote 9.PeriHCR
  • http://perichr.cn
  • 不行哦!察看弹出的页面的源代码,发现多了很多类似“<?xml:namespace prefix = span style="background />”的代码。
    比如:
    <?xml:namespace prefix = div id="color-chart" style="font-size /><div id="color-chart" style="font-size: 11px; font-family: "Courier New"; line-height: 18px;"> ……


    这个是怎么回事呢?
  • 2006-9-1 15:13:37 回复
  • quote 10.密陀僧
  • 引自 PeriHCR
    不行哦!察看弹出的页面的源代码,发现多了很多类似“&lt;?xml:namespace prefix = span style="background /&gt;”的代码。
    比如:

    &lt;?xml:namespace prefix = div id="color-chart" style="font-size /&gt;&lt;div id="color-chart" style="font-size: 11px; font-family: "Courier New"; line-height: 18px;"&gt; ……



    这个是怎么回事呢?

    把你的测试页面地址发给我看看~
  • 2006-9-2 21:19:03 回复
  • quote 12.hakkawawa
  • 我用了这方法, 多运行框下可以运行, 但不管是点哪个运行的都是运行最上面的那一个, 我用的是Z-Blog 1.4 sp3, 请问这是什么原因?
    http://www.yczhang.com
  • 2006-12-6 23:37:33 回复
  • quote 13.hakkawawa
  • 知道问题在哪了
    同一篇文章里的两个代码运行框正常
    同一个页面不同文章里的两个代码运行框就会不正常
    希望能改进
    谢谢
  • 2006-12-6 23:51:48 回复
  • quote 15.waitfeng
  • 2、func/c_function.asp,查找Function TransferHTML(source,para),把
    If Instr(para,"[space]")>0 Then source=Replace(source," "," ")
    注释掉。


    这里是什么意思呢
  • 2006-12-8 12:32:45 回复
  • quote 17.小放
  • http://chenfang.name
  • 我前几天完成运行代码(之前不知道你设计的那个)。也和你一样加了随机函数。不过最后生成的空格却是&nbsp;,导致代码无法运行。翻腾了好久,终于用极笨重的方法编了replaceAll函数(本人对JS不太了解)把chr(160)的替换成(32)的。真的很累啊。现在看到楼主这代码。直叫好。谢了。
  • 2007-3-21 18:15:06 回复
  • quote 18.dlcss
  • 我怎么能让我的 那些代码部分 在运行里面啊??

    联系qq576720270 我发表了,虽然是代码, 但是也没有运行啊?
  • 2007-8-23 21:16:00 回复
  • quote 19.悠悠
  • http://www.91di.com
  • 我的是1.7的,是不是不支持啊,有出现运行代码,但运行起来,总是不对
    总是出现:
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
    http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;zh&quot; lang=&quot;zh&quot;&gt;
    http://www.w3.org/2000/08/w3c-synd/#&quot;&gt;
  • 2007-9-6 16:50:32 回复
  • quote 20.leafor守叶人
  • http://www.leafor.com
  • 我用了你这个,不过效果不行,那些空格都去掉了,代码都堆到了一起,并且不能运行,如19楼相似。我用的是最新的z-blog1.8,才弄,请多指教。Sad
    比如此文:http://leafor.com/Leafor-blog/Footnotes-with-Javascript&CSS.html

    我的博客:http://www.leafor.com
  • 2008-1-14 15:36:58 回复
  • quote 21.leafor守叶人
  • http://www.leafor.com
  • 还是不行哦,大哥,你看我那里还是有乱码,不能换行,比如此文:
    http://leafor.com/Leafor-blog/Footnotes-with-Javascript&CSS.html
  • 2008-1-18 17:30:15 回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Hot Articles

New Articles

Last Comments

Guest