纯js实现的论坛常用的运行代码的效果


Posted in Javascript onJuly 15, 2008

用的时候把runcode.js放到网站目录,在需要运行代码的效果的地方放如下的代码

<div style="margin-top: 1em; margin-bottom: 1em"><div style="display:none">{1}</div><textarea rows="12" cols="95" style='font-family:"Courier New",Courier,monospace;'></textarea><script src="runcode.js"></script><br /><input type="button" value="运行代码" style="border-left:1px solid #B1B4CD;border-right:1px solid #494D74;border-top:1px solid #B1B4CD;;border-bottom:1px solid #494D74;background:#696D81;color:#FFFFFF;" onclick="runCode(this)"> <input type="button" style="border-left:1px solid #B1B4CD;border-right:1px solid #494D74;border-top:1px solid #B1B4CD;;border-bottom:1px solid #494D74;background:#696D81;color:#FFFFFF;"value="复制代码" onclick="copycode(this)"> <input type="button" style="border-left:1px solid #B1B4CD;border-right:1px solid #494D74;border-top:1px solid #B1B4CD;;border-bottom:1px solid #494D74;background:#696D81;color:#FFFFFF;"value="另存代码" onclick="saveCode(this)"> <input type="button" style="border-left:1px solid #B1B4CD;border-right:1px solid #494D74;border-top:1px solid #B1B4CD;;border-bottom:1px solid #494D74;background:#696D81;color:#FFFFFF;"value="还原代码" onclick="preCode(this)">  提示:您可以先修改部分代码再运行</div>

就可以了。
runcode.js文件
//Scripts runcode for BBS ver 2008-06-30, by Bound0(bound0@veryhman.com) 
//First published at http://bbs.blueidea.com 
//An example: http://bbs.veryhman.com/showtopic-20094.aspx function runCode(which) { 
    var p=which.parentNode; 
    var os=p.getElementsByTagName("textarea"); 
    if(os.length==0)return; 
    var o=os[0]; 
        var winname = window.open('', "_blank", ''); 
        winname.document.open('text/html', 'replace'); 
        winname.opener = null; 
        winname.document.write(o.value); 
        winname.document.close(); 
} 
function saveCode(which) { 
    var p=which.parentNode; 
    var os=p.getElementsByTagName("textarea"); 
    if(os.length==0)return; 
    var o=os[0]; 
        var winname = window.open('', '_blank', 'top=10000'); 
        winname.document.open('text/html', 'replace'); 
        winname.document.write(o.value); 
        winname.document.execCommand('saveas','','code.htm'); 
        winname.close(); 
} 
function copycode(which) { 
    var p=which.parentNode; 
    var os=p.getElementsByTagName("textarea"); 
    if(os.length==0)return; 
    var o=os[0]; 
    var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera) && userAgent.substr(userAgent.indexOf('msie') + 5, 3); 
    if(is_ie && o.style.display != 'none') { 
        var rng = document.body.createTextRange(); 
        rng.moveToElementText(o); 
        rng.scrollIntoView(); 
        rng.select(); 
        rng.execCommand("Copy"); 
        rng.collapse(false); 
    } 
} 
function text(e) 
{ 
    var t = ""; 
    e = e.childNodes || e; 
    for ( var j = 0; j < e.length; j++ ) 
    { 
        if(e[j].nodeType != 1){t+=e[j].nodeValue} 
        else 
        { 
            var k=e[j].nodeName; 
            if(k=='BR'||k=='P'){t+='\r\n'} 
            t+=text(e[j].childNodes) 
        } 
    } 
    return t; 
} 
function preCode(which) { 
    var p=which.parentNode; 
    var os=p.getElementsByTagName("textarea"); 
    if(os.length==0)return; 
    var o=os[0]; 
    var osv=p.getElementsByTagName("div"); 
    if(osv.length==0)return; 
    var ov=osv[0]; 
    var c='' 
    if(typeof(ov.innerText)!="undefined"){c=ov.innerText}else{c=text(ov)} 
    o.value=c 
} 
(function(){var s=document.getElementsByTagName("script");preCode(s[s.length-1])})()

Javascript 相关文章推荐
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
Apr 15 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
Dec 09 Javascript
js数组与字符串的相互转换方法
Jul 09 Javascript
js实现跨域的4种实用方法原理分析
Oct 29 Javascript
javascript鼠标右键菜单自定义效果
Dec 08 Javascript
Angular.js中$apply()和$digest()的深入理解
Oct 13 Javascript
最常见和最有用的字符串相关的方法详解
Feb 06 Javascript
Node.js readline模块与util模块的使用
Mar 01 Javascript
node thread.sleep实现示例
Jun 20 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
Aug 17 Javascript
vue实现图片预览组件封装与使用
Jul 13 Javascript
js+audio实现音乐播放器
Sep 13 Javascript
点图片上一页下一页翻页效果
Jul 09 #Javascript
JS的数组的扩展实例代码
Jul 09 #Javascript
JS location几个方法小姐
Jul 09 #Javascript
非常不错的功能强大代码简单的管理菜单美化版
Jul 09 #Javascript
javascript jQuery $.post $.ajax用法
Jul 09 #Javascript
javascript同步Import,同步调用外部js的方法
Jul 08 #Javascript
SWFObject Flash js调用类
Jul 08 #Javascript
You might like
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
js原生map实现的方法总结
2020/01/19 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
简单了解Python中的几种函数
2017/11/03 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
python2与python3共存问题的解决方法
2018/09/18 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
简述python&amp;pytorch 随机种子的实现
2020/10/07 Python
Python修改DBF文件指定列
2020/12/19 Python
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
实习生自我鉴定
2013/12/12 职场文书
小区物业门卫岗位职责
2014/04/10 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
优秀团队申报材料
2014/12/26 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
网吧管理制度范本
2015/08/05 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers