<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>综合练习6-1</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
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>
</head>
<body>
<!--用户界面,一文本框,一按钮-->
<div align="center" style="border-right: #000000 1px solid; border-top: #000000 1px solid; border-left: #000000 1px solid;
width: 618px; border-bottom: #000000 1px solid; height: 336px; background-color: #ffffff">
<textarea id="TextArea1" style="width: 612px; height: 300px"></textarea>
<input id="Button2" type="button" value="执行程序" onclick="return Button1_onclick()" style="width: 145px" /></div>
</body>
</html>高手解释一下以下代码什么意思?怎样实现的?
var str = "try{" + cmdWin.value + "}catch(e){alert('你的代码有错:'+e.description);}";// 构造函数体
var cmd = new Function(str); // 构造函数
cmd(); // 调用函数
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>综合练习6-1</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
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>
</head>
<body>
<!--用户界面,一文本框,一按钮-->
<div align="center" style="border-right: #000000 1px solid; border-top: #000000 1px solid; border-left: #000000 1px solid;
width: 618px; border-bottom: #000000 1px solid; height: 336px; background-color: #ffffff">
<textarea id="TextArea1" style="width: 612px; height: 300px"></textarea>
<input id="Button2" type="button" value="执行程序" onclick="return Button1_onclick()" style="width: 145px" /></div>
</body>
</html>高手解释一下以下代码什么意思?怎样实现的?
var str = "try{" + cmdWin.value + "}catch(e){alert('你的代码有错:'+e.description);}";// 构造函数体
var cmd = new Function(str); // 构造函数
cmd(); // 调用函数
var cmd = new Function(str); // 构造函数
cmd(); // 调用函数cmd是由Function对象动态创建的一个js函数,它的函数体是变量中str的内容,最终解释为:
var cmd=function(){
try{
//TextArea1元素里输入的内容,也做为函数体语句来执行 }catch(e){
//......其它内容
}
()中它可以包括以","逗号隔开的多个字符串作为函数参数.但最后一个做为函数体的内容,其它的都做为这个动态创建的函数的形参,你这里只有一个参数str,所以他就是函数体,不带参数,
什么意思?
//var cmd=function()
{
try{
//.... }catch (e){
//..... }
}
如果文本框里的代码存在异常则会提示异常错误信息.最终解析的函数为 function(){
try{
alert('这是文本框中需要执行的代码');
}catch(e)
{alert('你的代码有错:'+e.description);}
}