//获取一个对象
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>