纯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 相关文章推荐
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
Jan 15 Javascript
浅谈Javascript嵌套函数及闭包
Nov 09 Javascript
JQuery实现简单时尚快捷的气泡提示插件
Dec 20 Javascript
jquery解析xml字符串示例分享
Mar 25 Javascript
javascript判断并获取注册表中可信任站点的方法
Jun 01 Javascript
在vue.js中抽出公共代码的方法示例
Jun 08 Javascript
angular实现图片懒加载实例代码
Jun 08 Javascript
使用D3.js制作图表详解
Aug 13 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
Aug 30 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
Aug 05 Javascript
vue 中 命名视图的用法实例详解
Aug 14 Javascript
vue路由跳转传递参数的方式总结
May 10 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动态变静态原理
2006/11/25 PHP
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
在Linux下调试Python代码的各种方法
2015/04/17 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
python中正则表达式的使用方法
2018/02/25 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
python中pip的安装与使用教程
2018/08/10 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
介绍一下mysql的日期和时间函数
2013/03/28 面试题
幼儿园教学管理制度
2014/02/04 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android