在网页中编写js代码并运行

这是代码:

 <!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>