网页中点击运行执行代码

//获取一个对象

function getByid(id) {

    if (document.getElementById) {

        return document.getElementById(id);

    } else if (document.all) {

        return document.all[id];

    } else if (document.layers) {

        return document.layers[id];

    } else {

        return null;

    }

}


//运行框操作

function creatID(DivID){

var objs=getByid(DivID).getElementsByTagName('textarea');

var inps=getByid(DivID).getElementsByTagName('input');

var buts=getByid(DivID).getElementsByTagName('button');

var labs=getByid(DivID).getElementsByTagName('label');

    for (i=0; i<objs.length; i++) {

        objs[i].id="runcode"+i;

        inps[i].id=i

        buts[i].id=i

        labs[i].id=i

    }

}

function runCode(obj){  //定义一个运行代码的函数,

      var code=getByid("runcode"+obj).value;//即要运行的代码。

      var newwin=window.open('','','');  //打开一个窗口并赋给变量newwin。

      newwin.opener = null // 防止代码对论谈页面修改

      newwin.document.write(code);  //向这个打开的窗口中写入代码code,这样就实现了运行代码功能。

      newwin.document.close();

}

//复制代码

function doCopy(obj) {

    if (document.all){

         textRange = getByid("runcode"+obj).createTextRange();

         textRange.execCommand("Copy");

         alert("代码已经复制到剪切板");

    }else{

         alert("此功能只能在IE上有效\n\n请在文本域中用Ctrl+A选择再复制")

    }

}

//另存代码

function saveCode(obj) {

        var winname = window.open('','','width=0,height=0,top=200,left=200px');

        winname.document.open('text/html', 'replace');

        winname.document.write(obj.value);

        winname.document.execCommand('saveas','','自适应宽度圆角滑动门.html');

        winname.close();

}
 
有了这段js,就可以在要实现代码运行功能的网页中调用了~
调用方式代码如下参考:
<textarea name="runcode0" rows="12" cols="95" >
A区此处填写运行代码即可</textarea><br />
<input type="button" value="运行代码"  onclick="runCode(runcode0)" /> 
注意其中A填写代码是指在编辑状态下的运行代码,并非在代码状态下的代码。

 

效果如下:

<SCRIPT> 
function Preview(obj) 
{ 
  var TestWin=open(''); 
  TestWin.document.write(obj.value); 
} 
function copyCode(obj) { 
    var rng = document.body.createTextRange(); 
    rng.moveToElementText(obj); 
    rng.scrollIntoView(); 
    rng.select(); 
    rng.execCommand("Copy"); 
    rng.collapse(false); 
} 
</SCRIPT>

<TEXTAREA id="code" rows=15 cols=47>

<script>
alert('aa');
</script>

</TEXTAREA>
<BR><BUTTON onclick=Preview(code)>运行代码</BUTTON><BUTTON onclick=copyCode(code)>复制代码</BUTTON>

 

posted @ 2014-02-27 11:17  zhangsir  阅读(960)  评论(0编辑  收藏  举报