1 <HTML> 2 <HEAD> 3 <TITLE>JavaScript Example: Math methods</TITLE> 4 5 <SCRIPT LANGUAGE="JavaScript"> 6 <!-- hide script from old browsers 7 8 // Single-argument math methods: 9 mathMethod = new Array("abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"); 10 11 // Called by the onLoad handler: 12 function initialize() { 13 for ( var i = 0; i < mathMethod.length; i++ ) { 14 updateForm( mathMethod[i] ); 15 } 16 document.forms[1].max_out.value = parseInput("max", document.forms[1].max_in.value); 17 document.forms[1].min_out.value = parseInput("min", document.forms[1].min_in.value); 18 document.forms[1].pow_out.value = parseInput("pow", document.forms[1].pow_in.value); 19 } 20 21 // Called by the initialize() method and the onClick handler of forms[0]: 22 function updateForm( method ) { 23 with ( Math ) { 24 eval( "document.forms[0]." + method + "_out.value = " + method + "(eval(document.forms[0]." + method + "_in.value))" ); 25 } 26 } 27 28 // Called by the initialize() method and the onClick handler of forms[1]: 29 function parseInput(method, args) { 30 // Bug: What if there are multiple commas in 'args'? 31 var pos = args.indexOf(","); 32 var arg1 = args.substring(0, pos); 33 var arg2 = args.substring(pos+1, args.length); 34 var parsedArg = "(eval(" + arg1 + "), eval(" + arg2 + "))"; 35 with(Math) { 36 var result = eval(method + parsedArg); 37 } 38 return result; 39 } 40 41 // end script hiding --> 42 </SCRIPT> 43 44 </HEAD> 45 46 <BODY BGCOLOR="#FFFFFF" onLoad="initialize()"> 47 48 <H2>Math methods (single arg)</H2> 49 50 <SCRIPT LANGUAGE="JavaScript"> 51 <!-- hide script from old browsers 52 53 initValue = new Array("1 - 4",-1,1,1,"1/2","PI",1,1.9,"exp(2)","(1 - sqrt(2))/2","PI/2",2,"PI/4"); 54 55 document.writeln("<FORM>\n<TABLE>\n"); 56 for ( var i = 0; i < mathMethod.length; i++ ) { 57 document.writeln("<TR>"); 58 document.writeln("<TD>" + mathMethod[i] + "</TD>"); 59 document.writeln("<TD>"); 60 document.write("<INPUT TYPE=\"text\" "); 61 document.write("NAME=\"" + mathMethod[i] + "_in\" "); 62 document.writeln("VALUE=\"" + initValue[i] + "\"> ="); 63 document.write("<INPUT TYPE=\"text\" "); 64 document.writeln("NAME=\"" + mathMethod[i] + "_out\">"); 65 document.writeln("</TD>"); 66 document.writeln("<TD>"); 67 document.writeln("<INPUT TYPE=\"button\" VALUE=\"Compute\" "); 68 document.write('onClick="updateForm(\'' + mathMethod[i] + '\')">'); 69 document.writeln("</TD>"); 70 document.writeln("</TR>"); 71 } 72 document.writeln("</TABLE>\n</FORM>\n"); 73 74 // end script hiding --> 75 </SCRIPT> 76 77 <H2>Math methods (double arg)</H2> 78 79 <FORM> 80 <TABLE> 81 82 <TR> 83 <TD>max</TD> 84 <TD> 85 <INPUT TYPE="text" NAME="max_in" VALUE="2.5, E"> = 86 <INPUT TYPE="text" NAME="max_out"> 87 </TD> 88 <TD> 89 <INPUT TYPE="button" VALUE="Compute" 90 onClick="this.form.max_out.value = parseInput('max', this.form.max_in.value)"> 91 </TD> 92 </TR> 93 94 <TR> 95 <TD>min</TD> 96 <TD> 97 <INPUT TYPE="text" NAME="min_in" VALUE="PI/2, (1 + sqrt(5))/2"> = 98 <INPUT TYPE="text" NAME="min_out"> 99 </TD> 100 <TD> 101 <INPUT TYPE="button" VALUE="Compute" 102 onClick="this.form.min_out.value = parseInput('min', this.form.min_in.value)"> 103 </TD> 104 </TR> 105 106 <TR> 107 <TD>pow</TD> 108 <TD> 109 <INPUT TYPE="text" NAME="pow_in" VALUE="2, 3"> = 110 <INPUT TYPE="text" NAME="pow_out"> 111 </TD> 112 <TD> 113 <INPUT TYPE="button" VALUE="Compute" 114 onClick="this.form.pow_out.value = parseInput('pow', this.form.pow_in.value)"> 115 </TD> 116 </TR> 117 118 </TABLE> 119 </FORM> 120 121 </BODY> 122 </HTML>