纯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 相关文章推荐
解密效果
Jun 23 Javascript
Javascript 面向对象 对象(Object)
May 13 Javascript
中国地区三级联动下拉菜单效果分析
Nov 15 Javascript
Javascript中产生固定结果的函数优化技巧
Jan 16 Javascript
Jquery在指定DIV加载HTML示例代码
Feb 17 Javascript
JavaScript Promise启示录
Aug 12 Javascript
jQuery实现伪分页的方法分享
Feb 17 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
Jun 08 Javascript
JavaScript 保护变量不被随意修改的实现代码
Sep 27 Javascript
element ui 对话框el-dialog关闭事件详解
Feb 26 Javascript
Webpack 4.x搭建react开发环境的方法步骤
Aug 15 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
Feb 15 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
php下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
js的flv视频播放器插件使用方法
2015/06/23 Javascript
jquery属性,遍历,HTML操作方法详解
2016/09/17 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
深入讨论Python函数的参数的默认值所引发的问题的原因
2015/03/30 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
linux安装python修改默认python版本方法
2019/03/31 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
python实现与redis交互操作详解
2020/04/21 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
椰子猫砂:CatSpot
2018/08/27 全球购物
美国糖果店:Sugarfina
2019/02/21 全球购物
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
幼儿园义卖活动方案
2014/01/17 职场文书
三严三实对照检查材料思想汇报
2014/09/28 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
导游词之沈阳清昭陵
2019/12/28 职场文书
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
HDFS免重启挂载新磁盘
2022/04/06 Servers
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫
Redis实现订单过期删除的方法步骤
2022/06/05 Redis