这两天用JavaScript写了一个计算器,因为每个人有自己喜欢的样式,加上JS代码已经很长了,我就只给出JavaScript代码,可以实现加减乘除、开方、平方、三次方、四次方、绝对值、以及常用的三角函数等功能,剩下的只需要自己写一个表单,给里面的元素添加正确的事件就OK了。后面两个程序只需要把JavaScript代码放入
内即可,不需要添加其他代码。<script> var opStack = new Array(4); opStack[0] = 0; opStack[1] = ''; opStack[2] = ''; opStack[3] = ''; function StartCal(){ document.PAD.SUM.value = "0"; } function KeyinNum(){ if(opStack[0] >= 2){opStack[0] = 3;} else{opStack[0] = 1;} opStack[0] = '' + document.PAD.SUM.value; } function resetNum(){ opStack[0] = 0; opStack[1] = 0; document.PAD.CAL.value = ''; document.PAD.SUM.value = '0'; } function calcl(x){ var opFlag = opStack[0]; if(opFlag == -1 || opFlag == 1){count(x);} else if(opFlag == 3){ opStack[1] = '' + eval(opStack[1] + opStack[2] + opStack[[3]]); count(x); } } function count(x){ if(x == 'Si'){opStack[1] = '' + Math.sin(opStack[1]);} else if(x == 'aS'){opStack[1] = '' + Math.asin(opStack[1]);} else if(x == 'Co'){opStack[1] = '' + Math.cos(opStack[1]);} else if(x == 'aC'){opStack[1] = '' + Math.acos(opStack[1]);} else if(x == 'Ta'){opStack[1] = '' + Math.tan(opStack[1]);} else if(x == 'aT'){opStack[1] = '' + Math.atan(opStack[1]);} else if(x == '≡'){opStack[1] = '' + Math.pow(opStack[1],.5);} else if(x == '^2'){opStack[1] = '' + Math.pow(opStack[1],2);} else if(x == '^3'){opStack[1] = '' + Math.pow(opStack[1],3);} else if(x == '^4'){opStack[1] = '' + Math.pow(opStack[1],4);} else if(x == 'AB'){opStack[1] = '' + Math.abs(opStack[1]);} else if(x == '~'){} document.PAD.CAL.value = ''; opStack[0] = -1 display() document.PAD.SUM.focus(); document.PAD.SUM.select(); } function display(){ var sum = parseFloat(opStack[1]); document.PAD.SUM.value = '' + Math.round(sum * Math.pow(10,14)) / Math.pow(10.14); } function fra(){ var I; var j = 1; var k = document.PAD.SUM.value; if(k >= 70){opStack[1] = 0;document.PAD.SUM.value = "---Error---"; return;} for(i = 1; i <= k; i++){j = j * I;} opStack[1] = document.PAD.SUM.focus(); document.PAD.SUM.select(); } function enty(x){ if(opStack[0] == -1){opStack[0] = 1; opStack[1] = '';} if(opStack[0] == 0){opStack[0] = 1; opStack[1] = '';} if(opStack[0] == 2){opStack[0] = 3; opStack[1] = '';} var result = result = opStack[opStack[0]]; if(result == '0'){result = '';} if(x >= '1' && x <= '9'){result = '' + result + x;} else if(x == 'P'){result = '' + Math.PI;} else if(x == '0'){if(result != '')result = '' + result + '0';} else if(x == 'B'){if(result != '')result = result.substring(0, result.length - 1);} else if(x == '.'){if(result != ''){if(result.indexOf(".") == -1)result += ".";} else{result = '0.';}} if(result == '')result = '0'; opStack[opStack[0]] = result; document.PAD.SUM.value = result; } function calc2(x){ var opFlag = opStack[0]; if(opFlag != 2){ if(opFlag == 3){ opStack[1] = '' + eval(opStack[1] + opStack[2] + opStack[3]); display(); } opStack[0] = 2; opStack[2] = x; document.PAD.CAL.value = x; document.PAD.SUM.focus(); document.PAD.SUM.select(); } } function neg(){ if(opStack[0] != 2 && opStack != 0){ opStack[0] = Math.abs(opStack[0]); var result = opStack[opStack[0]]; if(result != '0' && result != ''){ if(result.charAt(0) == '-'){result = result.substring(1, result.length);} else{result = '-' +result;} opStack[opStack[0]] = result; document.PAD.SUM.value = result; } } } function TurnOff(){ var ask = confirm("你确定要关闭计算器么?"); if(ask == true){window.close();} else{return;} } </script>
下面这个是弹出对话框,显示浏览器的内部代码名、版本号、首选语言、所在平台、浏览器类型等信息,在某些特殊的程序要判断时可以用到。
<script language="javascript"> var appCodeName= window.navigator.appCodeName; //返回与浏览器相关的内部代码名都为Mozilla var appName= navigator.appName; //返回浏览器正式名称均为Netscape var appVersion = navigator.appVersion; //返回浏览器版本号 var cookEnabled= navigator.cookieEnabled; //返回浏览器是否启用cookie var geolocation = navigator.geolocation; //返回地理定位信息(h5) var javaEnabled= navigator.javaEnabled(); //检测当前浏览器是否支持java,从而知道浏览器是否能显示java小程序 var language= navigator.language; //返回浏览器的首选语言 var mimeTypes= navigator.mimeTypes; //返回浏览器支持的Mime类型 var onLine= navigator. onLine; //是否连接互联网 var platform= navigator.platform; //所在平台 var plugins = navigator.plugins; //返回浏览器插件集合 var preference = navigator. preference; //允许一个已标识的脚本获取并设置特定的Navigator参数 var product = navigator.product; //浏览器产品名 var systemLanguage= navigator.systemLanguage; //获取系统语言 var userAgent= navigator.userAgent; //判断浏览器类型 var userLanguage= navigator.userLanguage; //返回操作系统的自然语言设置 var msLaunchUri= navigator.msLaunchUri; //回调函数 var taintEnabled= navigator.taintEnabled; //回调函数 var hasOwnProperty= navigator.hasOwnProperty; //是否支持属性 var s= document.hasOwnProperty("ontouchstart"); alert("与浏览器相关的内部代码名:"+appCodeName+"\n"+"浏览器版本号:"+appVersion+"\n"+"浏览器的首选语言:"+language+"\n"+"所在平台:"+platform+"\n"+"浏览器型号:"+userAgent); </script>
最后这个代码是返回你的电脑屏幕信息,有的时候,我感觉要找到这些信息不知道去哪找,索性写一个程序来解决,不过Chrome有些显示不出来,用其他浏览器就行。
<script language="javascript"> document.write("<p>屏幕分辨率:") document.write(screen.width+"*"+screen.height+"</p>") document.write("<p>屏幕可显示面积:") document.write(screen.availWidth+"*"+screen.availHeight+"</p>") document.write("<p>颜色深度:") document.write(screen.colorDepth+"</p>") document.write("<p>缓冲深度:") document.write(screen.bufferDepth+"</p>") document.write("<p>每英寸水平点数:") document.write(screen.deviceXDPI+"</p>") document.write("<p>每英寸垂直点数:") document.write(screen.deviceXDPI+"</P>") document.write("<p>水平方向常规点数:") document.write(screen.logicalXDPI+"</p>") document.write("<p>是否启用了字体平滑:") document.write(screen.fontSmoothingEnabled+"</P>") document.write("<p>屏幕的颜色分辨率:") document.write(screen.pixelDepth+"</p>") document.write("<p>屏幕刷新率") document.write(screen.updateInterval+"</p>") </script>