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

用的时候把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])})()

时间: 2024-08-20 09:18:49

纯js实现的论坛常用的运行代码的效果_javascript技巧的相关文章

纯JS打造网页中checkbox和radio的美化效果_javascript技巧

图片素材: 效果图: <head> <style> BODY { FONT-FAMILY: "Segoe UI", Frutiger, Tahoma, Helvetica, "Helvetica Neue", Arial, sans-serif; FONT-SIZE:62.5% } LABEL { MARGIN-RIGHT: 1.2em } .custom-checkbox { POSITION: relative } .custom-rad

纯JS实现五子棋游戏兼容各浏览器(附源码)_javascript技巧

纯JS五子棋(各浏览器兼容) 效果图:  代码下载 HTML代码 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;"> <title>五子棋</title> <link rel="stylesheet" type="text/

纯JS实现可拖拽表单的简单实例_javascript技巧

因为要用到可拖拽表单,个人要比较喜欢自己动手,不怎么喜欢在不懂实现或者原理的情况下用插件,所以查找资料实现了一个. 思路:放入:用mousedown判断鼠标点击的位置是否在触发控件的位置,如果是,mousemove的时候clone一个控件,修改透明度,然后放入容器内的时候remove这个控件,并且在容器内生成一个放入的控件(放入的控件和触发的控件可以不一样) 拖拽:同样的, mousedown的时候判断是哪个控件,mousemove的时候需要放一个占位div放在原有的位置上,并将元素修改透明度然

js实现仿Discuz文本框弹出层效果_javascript技巧

本文实例讲述了js实现仿Discuz文本框弹出层效果.分享给大家供大家参考.具体如下: 这是一个在经典论坛曾经热讨论的问题,记得在QQ邮箱里也有类似功能,Discuz7.0论坛里同样也有,当你的鼠标单击文本框的时候,会弹出一个包含文字.图片.表单无素的DIV层,里面的元素都可以进行操作,很方便,选中的值会自动添加到文本框内.本代码经过了多次修正,没有进行过多美化,你美工好的话可以自己美化. 运行效果截图如下: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//D

JS+CSS实现简易实用的滑动门菜单效果_javascript技巧

本文实例讲述了JS+CSS实现简易实用的滑动门菜单效果.分享给大家供大家参考.具体如下: 这是一个简洁实用的CSS+JavaScript滑动门导航菜单,写时候,我尽量用最少的代码写出兼容性好的代码,希望这款滑动门大家能够喜欢,也希望研究JS的达人一同切磋,共同提高. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-simple-useful-menu-codes/ 具体代码如下: <html> <head> <t

JS实现可拖曳、可关闭的弹窗效果_javascript技巧

本文实例讲述了JS实现可拖曳.可关闭的弹窗效果.分享给大家供大家参考.具体如下: 运行该实例,点击文字,弹出一个窗口,其实是一个弹出层,这个弹出层可以随鼠标拖曳,另外,示例演示了用本方法弹出文字层和弹出图片层的具体代码,请根据选择使用哦. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-draw-close-able-alert-dlg-demo/ 具体代码如下: <!DOCTYPE HTML> <html> <head

JS实现样式清新的横排下拉菜单效果_javascript技巧

本文实例讲述了JS实现样式清新的横排下拉菜单效果.分享给大家供大家参考.具体如下: 这是一款灰色调横排清新的下拉菜单,完全符合WEB标准,兼容性不错,菜单简洁好用,适合大部分的网页风格.如果色调不是你想要的,自己发挥聪明才智,修改一下吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-simple-style-hp-menu-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML

JS实现自动定时切换的简洁网页选项卡效果_javascript技巧

本文实例讲述了JS实现自动定时切换的简洁网页选项卡效果.分享给大家供大家参考.具体如下: 这是一款简洁人网页选项卡,与其它TAB不同的是,本选项卡是自动切换的,在变量里设定选项卡的内容.切换时间等,它就开始工作了,如果可以响应鼠标的动作就更完美了. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-auto-ds-web-menu-demo/ 具体代码如下: <html> <head> <title>自动切换的选项卡

JS+CSS实现经典的左侧竖向滑动菜单效果_javascript技巧

本文实例讲述了JS+CSS实现经典的左侧竖向滑动菜单效果.分享给大家供大家参考.具体如下: 这是一款经过改造的左侧竖向滑动菜单,基于JavaScript+CSS,没有过多的修饰,主要想实现菜单的动画效果,想用的朋友,自己美化吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-jd-left-v-hd-menu-style-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XH