JavaScript制作计算器、显示浏览器和屏幕信息

这两天用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>
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注