纯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实现的UBB编码函数
Mar 09 Javascript
ExtJs使用IFrame的实现代码
Mar 24 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
Oct 25 Javascript
jQuery读取XML文件内容的方法
Mar 09 Javascript
JS通过ajax动态读取xml文件内容的方法
Mar 24 Javascript
使用iojs的jsdom库实现同步系统时间
Apr 20 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
Oct 14 Javascript
jQuery 跨域访问解决原理案例详解
Jul 09 Javascript
详解vue之页面缓存问题(基于2.0)
Jan 10 Javascript
js时间查询插件使用详解
Apr 07 Javascript
vue使用高德地图根据坐标定位点的实现代码
Aug 22 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 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
CI框架安全类Security.php源码分析
2014/11/04 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
js 获取Listbox选择的值的代码
2010/04/15 Javascript
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
Vue中的作用域CSS和CSS模块的区别
2018/10/09 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
python开发之字符串string操作方法实例详解
2015/11/12 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
Python IDLE入门简介
2017/12/08 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
python读取并写入mat文件的方法
2019/07/12 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
德国旅游网站:weg.de
2018/06/03 全球购物
讲文明知礼仪演讲稿
2014/09/13 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
创业计划书之家教中心
2019/09/25 职场文书