这是代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>在网页中编写代码并运行</title>
</head>
<body>
<div align="center">
<textarea id="TextArea1" style="width: 612px; height: 300px"></textarea>
<input id="Button2" type="button" value="执行程序" onclick="return Button1_onclick()" style="width: 145px" />
</div>
<script>
function Button1_onclick(){
try
{
var cmdWin = document.getElementById("TextArea1"); // 获取文本框的引用
var str = "try{" + cmdWin.value + "}catch(e){alert('你的代码有错:'+e.description);}";// 构造函数体
var cmd = new Function(str); // 构造函数
cmd(); // 调用函数
}
catch(e)
{
alert("错误:"+e.description); // 输出错误信息
}
}
</script>
</body>
</html>
这个程序是如何实现在网页中编辑js代码并运行的?看了老半天,几行代码完全没搞明白,望广大朋友们帮我详细解答一下,谢谢了
应该是把写好的代码确认无误后传给str,然后调用函数cmd嘛
new Function(str)
关键是这一行,它可以把js的程序源代码字符串视作一个函数并且执行。
<form id="danxuan" action="#" method="post" enctype="multipart/form-data"> <span>请添加单选题:</span> <br /> <input type="hidden" name="stlx" value="01"> 试题科目:<select id="danxuanstkm" name="stkm"> <!--后台查询出来填入--> </select><br> 试题名称:<br /><input type="text" name="stmc" required="required" class="form-control " style="width: 300px;"/> 题干(上传图片或手动输入): <input type="file" id="tpljdanxuan" name="tplj" multiple="multiple" > <br /> <!--<textarea name="sttg" class="form-control" cols="100" rows="6" style="resize: none;width: 600px;"></textarea>--> A选项:<input type="text" name="sttg" required="required" class="form-control" style="width: 300px;"/> B选项:<input type="text" name="sttg" required="required" class="form-control" style="width: 300px;"/> C选项:<input type="text" name="sttg" required="required" class="form-control" style="width: 300px;"/> D选项:<input type="text" name="sttg" required="required" class="form-control" style="width: 300px;"/> <br /> 答案: <input type="radio" value="A" name="stda"/>A <input type="radio" value="B" name="stda"/>B <input type="radio" value="C" name="stda"/>C <input type="radio" value="D" name="stda"/>D <br /><br /> 是否显示本题: <input type="radio" value="1" name="xsbz" checked="checked"/>显示 <input type="radio" value="0" name="xsbz"/>不显示 <br> <input class="btn btn-primary" type="submit" onclick="addDX()" value="确认出题"/> </form>