求一个js计算器,需求:页面需要n个文本框,当鼠标点击任意一个文本框的时候能弹出一个简单计算器,而且一个页面能同时存在多个计算器,当我计算完之后,结果能显示在对应的文本框里,计算的时候计算过程能显示在计算器上。(能执行 ‘+’‘-’‘*’‘/’‘%’操作就OK) 要求基本美工。
----------------------------------
各位大大 没办法了 ,我自己网上找了一个,非常不好用,不好看,而且使用一次就不能再次打开了,自己调也调不出来,只有指望各位了,
----------------------------------
各位大大 没办法了 ,我自己网上找了一个,非常不好用,不好看,而且使用一次就不能再次打开了,自己调也调不出来,只有指望各位了,
<style>
.jsq{
background: #666699;
width: 137px;
border: 0.2cm #CCCCFF solid;
cursor: pointer;
position:absolute;
}
</style>
<script>
function fun(v){
var reg = /\d/;
if(reg.test(v)){
//计算
}
}
var i = 0;
function createJSQ(){
i++;
var div = document.createElement("div");
div.className = "jsq";
div.style.top = Math.random() * ((screen.availHeight * 0.7)-(screen.availHeight * 0.1)) + "px";
div.style.left = Math.random() * ((screen.availWidth * 0.7)-(screen.availWidth * 0.1)) + 1 + "px";
var input = document.createElement("input");
input.type = "text";
input.id = "text" + i;
input.style.width = "120px";
div.appendChild(input);
div.appendChild(document.createElement("br"));
var arr = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "+", "-", "*", "%", ".", "=");
for(var j = 0, k = 1; j < 16; j++, k++){
var input = document.createElement("input");
input.type = "button";
input.id = "button" + i;
input.value = arr[j];
if(document.addEventListener){
input.addEventListener('click', function(){fun(arr[j])}, false);
}else if(attachEvent){
input.attachEvent('onclick', new Function("fun('" + arr[j] + "')"));
}
div.appendChild(input);
if(k % 8 == 0){
div.appendChild(document.createElement("br"));
}
}
document.getElementById("div").appendChild(div);
}
</script>
<div id="div"></div>
<input type="button" value="计算器" onclick="createJSQ()">
Insert into <HEAD><SCRIPT LANGUAGE="JavaScript">
<!-- Original: Rick Johnson -->
<!-- Web Site: http://members.tripod.com/~RickJohnson -->
<!-- Begin
function a_plus_b(form) {
a=eval(form.a.value)
b=eval(form.b.value)
c=a+b
form.ans.value = c
}
function a_minus_b(form) {
a=eval(form.a.value)
b=eval(form.b.value)
c=a-b
form.ans.value=c
}
function a_times_b(form) {
a=eval(form.a.value)
b=eval(form.b.value)
c=a*b
form.ans.value=c
}
function a_div_b(form) {
a=eval(form.a.value)
b=eval(form.b.value)
c=a/b
form.ans.value = c
}
function a_pow_b(form) {
a=eval(form.a.value)
b=eval(form.b.value)
c=Math.pow(a, b)
form.ans.value = c
}
// End -->
</SCRIPT>Insert into <BODY><CENTER>
<FORM name="formx"><input type=text size=4 value=12 name="a">
<input type="button" value=" + " onClick="a_plus_b(this.form)">
<input type="button" value=" - " onClick="a_minus_b(this.form)">
<input type="button" value=" x " onClick="a_times_b(this.form)">
<input type="button" value=" / " onClick="a_div_b(this.form)">
<input type="button" value=" ^ " onClick="a_pow_b(this.form)">
<input type="number" size=4 value=3 name="b"> = <input type "number" value=0 name="ans" size=9>
</FORM>
</CENTER>
<TABLE>
<B>
<TABLE border=2 width=50 height=60 cellpadding=1 cellspacing=5>
<TR>
<TD colspan=3 align=middle>
<input name="ReadOut" type="Text" size=24 value="0" width=100%>
</TD>
<TD>
</TD>
<TD>
<input name="btnClear" type="Button" value=" C " onclick="Clear()">
</TD>
<TD><input name="btnClearEntry" type="Button" value=" CE " onclick="ClearEntry()">
</TD>
</TR>
<TR>
<TD>
<input name="btnSeven" type="Button" value=" 7 " onclick="NumPressed(7)">
</TD>
<TD>
<input name="btnEight" type="Button" value=" 8 " onclick="NumPressed(8)">
</TD>
<TD>
<input name="btnNine" type="Button" value=" 9 " onclick="NumPressed(9)">
</TD>
<TD>
</TD>
<TD>
<input name="btnNeg" type="Button" value=" +/- " onclick="Neg()">
</TD>
<TD>
<input name="btnPercent" type="Button" value=" % " onclick="Percent()">
</TD>
</TR>
<TR>
<TD>
<input name="btnFour" type="Button" value=" 4 " onclick="NumPressed(4)">
</TD>
<TD>
<input name="btnFive" type="Button" value=" 5 " onclick="NumPressed(5)">
</TD>
<TD>
<input name="btnSix" type="Button" value=" 6 " onclick="NumPressed(6)">
</TD>
<TD>
</TD>
<TD align=middle><input name="btnPlus" type="Button" value=" + " onclick="Operation('+')">
</TD>
<TD align=middle><input name="btnMinus" type="Button" value=" - " onclick="Operation('-')">
</TD>
</TR>
<TR>
<TD>
<input name="btnOne" type="Button" value=" 1 " onclick="NumPressed(1)">
</TD>
<TD>
<input name="btnTwo" type="Button" value=" 2 " onclick="NumPressed(2)">
</TD>
<TD>
<input name="btnThree" type="Button" value=" 3 " onclick="NumPressed(3)">
</TD>
<TD>
</TD>
<TD align=middle><input name="btnMultiply" type="Button" value=" * " onclick="Operation('*')">
</TD>
<TD align=middle><input name="btnDivide" type="Button" value=" / " onclick="Operation('/')">
</TD>
</TR>
<TR>
<TD>
<input name="btnZero" type="Button" value=" 0 " onclick="NumPressed(0)">
</TD>
<TD>
<input name="btnDecimal" type="Button" value=" . " onclick="Decimal()">
</TD>
<TD colspan=3>
</TD>
<TD>
<input name="btnEquals" type="Button" value=" = " onclick="Operation('=')">
</TD>
</TR>
</TABLE>
</TABLE>
</B>
</FORM>
</CENTER>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var FKeyPad = document.Keypad;
var Accum = 0;
var FlagNewNum = false;
var PendingOp = "";
function NumPressed (Num) {
if (FlagNewNum) {
FKeyPad.ReadOut.value = Num;
FlagNewNum = false;
}
else {
if (FKeyPad.ReadOut.value == "0")
FKeyPad.ReadOut.value = Num;
else
FKeyPad.ReadOut.value += Num;
}
}
function Operation (Op) {
var Readout = FKeyPad.ReadOut.value;
if (FlagNewNum && PendingOp != "=");
else
{
FlagNewNum = true;
if ( '+' == PendingOp )
Accum += parseFloat(Readout);
else if ( '-' == PendingOp )
Accum -= parseFloat(Readout);
else if ( '/' == PendingOp )
Accum /= parseFloat(Readout);
else if ( '*' == PendingOp )
Accum *= parseFloat(Readout);
else
Accum = parseFloat(Readout);
FKeyPad.ReadOut.value = Accum;
PendingOp = Op;
}
}
function Decimal () {
var curReadOut = FKeyPad.ReadOut.value;
if (FlagNewNum) {
curReadOut = "0.";
FlagNewNum = false;
}
else
{
if (curReadOut.indexOf(".") == -1)
curReadOut += ".";
}
FKeyPad.ReadOut.value = curReadOut;
}
function ClearEntry () {
FKeyPad.ReadOut.value = "0";
FlagNewNum = true;
}
function Clear () {
Accum = 0;
PendingOp = "";
ClearEntry();
}
function Neg () {
FKeyPad.ReadOut.value = parseFloat(FKeyPad.ReadOut.value) * -1;
}
function Percent () {
FKeyPad.ReadOut.value = (parseFloat(FKeyPad.ReadOut.value) / 100) * parseFloat(Accum);
}
// End -->
</SCRIPT>
-------
你这下定单呢?? 那money呢? 别人给个样儿,自己去改就是了。
money就100分了啊。我刚学JS改起来很困难
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>计算器 - CodeFans.net</title>
<link href="common.css" rel="stylesheet" type="text/css" /></head><body>
<table width="800" cellpadding=2 cellspacing=0 style="border:1px solid #B2D0EA;">
<tr>
<th align="center">万能数学计算器</th>
</tr>
<tr>
<td align="center">
<script language="javascript">
<!--
var endNumber=true
var mem=0
var carry=10
var hexnum="0123456789abcdef"
var angle="d"
var stack=""
var level="0"
var layer=0
//数字键function inputkey(key)
{
var index=key.charCodeAt(0);
if ((carry==2 && (index==48 || index==49))
|| (carry==8 && index>=48 && index<=55)
|| (carry==10 && (index>=48 && index<=57 || index==46))
|| (carry==16 && ((index>=48 && index<=57) || (index>=97 && index<=102))))
if(endNumber)
{
endNumber=false
document.calc.display.value = key
}
else if(document.calc.display.value == null || document.calc.display.value == "0")
document.calc.display.value = key
else
document.calc.display.value += key
}function changeSign()
{
if (document.calc.display.value!="0")
if(document.calc.display.value.substr(0,1) == "-")
document.calc.display.value = document.calc.display.value.substr(1)
else
document.calc.display.value = "-" + document.calc.display.value
}//函数键function inputfunction(fun,shiftfun)
{
endNumber=true
if (document.calc.shiftf.checked)
document.calc.display.value=decto(funcalc(shiftfun,(todec(document.calc.display.value,carry))),carry)
else
document.calc.display.value=decto(funcalc(fun,(todec(document.calc.display.value,carry))),carry)
document.calc.shiftf.checked=false
document.calc.hypf.checked=false
inputshift()
}function inputtrig(trig,arctrig,hyp,archyp)
{
if (document.calc.hypf.checked)
inputfunction(hyp,archyp)
else
inputfunction(trig,arctrig)
}
//运算符function operation(join,newlevel)
{
endNumber=true
var temp=stack.substr(stack.lastIndexOf("(")+1)+document.calc.display.value
while (newlevel!=0 && (newlevel<=(level.charAt(level.length-1))))
{
temp=parse(temp)
level=level.slice(0,-1)
}
if (temp.match(/^(.*\d[\+\-\*\/\%\^\&\|x])?([+-]?[0-9a-f\.]+)$/))
document.calc.display.value=RegExp.$2
stack=stack.substr(0,stack.lastIndexOf("(")+1)+temp+join
document.calc.operator.value=" "+join+" "
level=level+newlevel
}//括号function addbracket()
{
endNumber=true
document.calc.display.value=0
stack=stack+"("
document.calc.operator.value=" "
level=level+0
layer+=1
document.calc.bracket.value="(="+layer
}function disbracket()
{
endNumber=true
var temp=stack.substr(stack.lastIndexOf("(")+1)+document.calc.display.value
while ((level.charAt(level.length-1))>0)
{
temp=parse(temp)
level=level.slice(0,-1)
}
document.calc.display.value=temp
stack=stack.substr(0,stack.lastIndexOf("("))
document.calc.operator.value=" "
level=level.slice(0,-1) layer-=1
if (layer>0)
document.calc.bracket.value="(="+layer
else
document.calc.bracket.value=""
}//等号function result()
{
endNumber=true
while (layer>0)
disbracket()
var temp=stack+document.calc.display.value
while ((level.charAt(level.length-1))>0)
{
temp=parse(temp)
level=level.slice(0,-1)
} document.calc.display.value=temp
document.calc.bracket.value=""
document.calc.operator.value=""
stack=""
level="0"
}
//修改键function backspace()
{
if (!endNumber)
{
if(document.calc.display.value.length>1)
document.calc.display.value=document.calc.display.value.substring(0,document.calc.display.value.length - 1)
else
document.calc.display.value=0
}
}function clearall()
{
document.calc.display.value=0
endNumber=true
stack=""
level="0"
layer=""
document.calc.operator.value=""
document.calc.bracket.value=""
}
//转换键function inputChangCarry(newcarry)
{
endNumber=true
document.calc.display.value=(decto(todec(document.calc.display.value,carry),newcarry))
carry=newcarry document.calc.sin.disabled=(carry!=10)
document.calc.cos.disabled=(carry!=10)
document.calc.tan.disabled=(carry!=10)
document.calc.bt.disabled=(carry!=10)
document.calc.pi.disabled=(carry!=10)
document.calc.e.disabled=(carry!=10)
document.calc.kp.disabled=(carry!=10)
document.calc.k2.disabled=(carry<=2)
document.calc.k3.disabled=(carry<=2)
document.calc.k4.disabled=(carry<=2)
document.calc.k5.disabled=(carry<=2)
document.calc.k6.disabled=(carry<=2)
document.calc.k7.disabled=(carry<=2)
document.calc.k8.disabled=(carry<=8)
document.calc.k9.disabled=(carry<=8)
document.calc.ka.disabled=(carry<=10)
document.calc.kb.disabled=(carry<=10)
document.calc.kc.disabled=(carry<=10)
document.calc.kd.disabled=(carry<=10)
document.calc.ke.disabled=(carry<=10)
document.calc.kf.disabled=(carry<=10)
}function inputChangAngle(angletype)
{
endNumber=true
angle=angletype
if (angle=="d")
document.calc.display.value=radiansToDegress(document.calc.display.value)
else
document.calc.display.value=degressToRadians(document.calc.display.value)
endNumber=true
}function inputshift()
{
if (document.calc.shiftf.checked)
{
document.calc.bt.value="deg "
document.calc.ln.value="exp "
document.calc.log.value="expd"
if (document.calc.hypf.checked)
{
document.calc.sin.value="ahs "
document.calc.cos.value="ahc "
document.calc.tan.value="aht "
}
else
{
document.calc.sin.value="asin"
document.calc.cos.value="acos"
document.calc.tan.value="atan"
}
document.calc.sqr.value="x^.5"
document.calc.cube.value="x^.3"
document.calc.floor.value="小数"
}
else
{
document.calc.bt.value="d.ms"
document.calc.ln.value=" ln "
document.calc.log.value="log " if (document.calc.hypf.checked)
{
document.calc.sin.value="hsin"
document.calc.cos.value="hcos"
document.calc.tan.value="htan"
}
else
{
document.calc.sin.value="sin "
document.calc.cos.value="cos "
document.calc.tan.value="tan "
}
document.calc.sqr.value="x^2 "
document.calc.cube.value="x^3 "
document.calc.floor.value="取整"
}}
//存储器部分function clearmemory()
{
mem=0
document.calc.memory.value=" "
}function getmemory()
{
endNumber=true
document.calc.display.value=decto(mem,carry)
}function putmemory()
{
endNumber=true
if (document.calc.display.value!=0)
{
mem=todec(document.calc.display.value,carry)
document.calc.memory.value=" M "
}
else
document.calc.memory.value=" "
}function addmemory()
{
endNumber=true
mem=parseFloat(mem)+parseFloat(todec(document.calc.display.value,carry))
if (mem==0)
document.calc.memory.value=" "
else
document.calc.memory.value=" M "
}function multimemory()
{
endNumber=true
mem=parseFloat(mem)*parseFloat(todec(document.calc.display.value,carry))
if (mem==0)
document.calc.memory.value=" "
else
document.calc.memory.value=" M "
}//十进制转换function todec(num,oldcarry)
{
if (oldcarry==10 || num==0) return(num)
var neg=(num.charAt(0)=="-")
if (neg) num=num.substr(1)
var newnum=0
for (var index=1;index<=num.length;index++)
newnum=newnum*oldcarry+hexnum.indexOf(num.charAt(index-1))
if (neg)
newnum=-newnum
return(newnum)
}function decto(num,newcarry)
{
var neg=(num<0)
if (newcarry==10 || num==0) return(num)
num=""+Math.abs(num)
var newnum=""
while (num!=0)
{
newnum=hexnum.charAt(num%newcarry)+newnum
num=Math.floor(num/newcarry)
}
if (neg)
newnum="-"+newnum
return(newnum)
}//表达式解析function parse(string)
{
if (string.match(/^(.*\d[\+\-\*\/\%\^\&\|x\<])?([+-]?[0-9a-f\.]+)([\+\-\*\/\%\^\&\|x\<])([+-]?[0-9a-f\.]+)$/))
return(RegExp.$1+cypher(RegExp.$2,RegExp.$3,RegExp.$4))
else
return(string)
}//数学运算和位运算function cypher(left,join,right)
{
left=todec(left,carry)
right=todec(right,carry)
if (join=="+")
return(decto(parseFloat(left)+parseFloat(right),carry))
if (join=="-")
return(decto(left-right,carry))
if (join=="*")
return(decto(left*right,carry))
if (join=="/" && right!=0)
return(decto(left/right,carry))
if (join=="%")
return(decto(left%right,carry))
if (join=="&")
return(decto(left&right,carry))
if (join=="|")
return(decto(left|right,carry))
if (join=="^")
return(decto(Math.pow(left,right),carry))
if (join=="x")
return(decto(left^right,carry))
if (join=="<")
return(decto(left<<right,carry))
alert("除数不能为零")
return(left)
}//函数计算
{
with(Math)
{
if (fun=="pi")
return(PI)
if (fun=="e")
return(E) if (fun=="abs")
return(abs(num))
if (fun=="ceil")
return(ceil(num))
if (fun=="round")
return(round(num)) if (fun=="floor")
return(floor(num))
if (fun=="deci")
return(num-floor(num))
if (fun=="ln" && num>0)
return(log(num))
if (fun=="exp")
return(exp(num))
if (fun=="log" && num>0)
return(log(num)*LOG10E)
if (fun=="expdec")
return(pow(10,num))
if (fun=="cube")
return(num*num*num)
if (fun=="cubt")
return(pow(num,1/3))
if (fun=="sqr")
return(num*num)
if (fun=="sqrt" && num>=0)
return(sqrt(num)) if (fun=="!")
return(factorial(num)) if (fun=="recip" && num!=0)
return(1/num)
if (fun=="dms")
return(dms(num))
if (fun=="deg")
return(deg(num)) if (fun=="~")
return(~num)
if (angle=="d")
{
if (fun=="sin")
return(sin(degressToRadians(num)))
if (fun=="cos")
return(cos(degressToRadians(num)))
if (fun=="tan")
return(tan(degressToRadians(num))) if (fun=="arcsin" && abs(num)<=1)
return(radiansToDegress(asin(num)))
if (fun=="arccos" && abs(num)<=1)
return(radiansToDegress(acos(num)))
if (fun=="arctan")
return(radiansToDegress(atan(num)))
}
else
{
if (fun=="sin")
return(sin(num))
if (fun=="cos")
return(cos(num))
if (fun=="tan")
return(tan(num)) if (fun=="arcsin" && abs(num)<=1)
return(asin(num))
if (fun=="arccos" && abs(num)<=1)
return(acos(num))
if (fun=="arctan")
return(atan(num))
}
if (fun=="hypsin")
return((exp(num)-exp(0-num))*0.5)
if (fun=="hypcos")
return((exp(num)+exp(-num))*0.5)
if (fun=="hyptan")
return((exp(num)-exp(-num))/(exp(num)+exp(-num))) if (fun=="ahypsin" | fun=="hypcos" | fun=="hyptan")
{
alert("对不起,公式还没有查到!")
return(num)
}
alert("超出函数定义范围")
return(num)
}
}function factorial(n)
{
n=Math.abs(parseInt(n))
var fac=1
for (;n>0;n-=1)
fac*=n
return(fac)
}function dms(n)
{
var neg=(n<0)
with(Math)
{
n=abs(n)
var d=floor(n)
var m=floor(60*(n-d))
var s=(n-d)*60-m
}
var dms=d+m/100+s*0.006
if (neg)
dms=-dms
return(dms)
}function deg(n)
{
var neg=(n<0)
with(Math)
{
n=abs(n)
var d=floor(n)
var m=floor((n-d)*100)
var s=(n-d)*100-m
}
var deg=d+m/60+s/36
if (neg)
deg=-deg
return(deg)
}function degressToRadians(degress)
{
return(degress*Math.PI/180)
}function radiansToDegress(radians)
{
return(radians*180/Math.PI)
}//界面//-->
</script>
<br />
<table width="100%" bgcolor="#FFFFFF" align="center" cellspacing="2">
<tr>
<form name=calc>
<td align="center"><table width="550" align="center" cellspacing="2">
<tr>
<td align="center"><table width="540" height="45" cellspacing="0" class="border">
<tr>
<td width="26" align="center" bgcolor="#E6F0FA"></td>
<td width="495" align="left" bgcolor="#E6F0FA">结果:
<input type=text name="display" value="0" readonly size="40">
<a onclick='display.select();document.execCommand("Copy")' href="#">复制结果</a></td>
</table></td>
</tr>
<tr>
<td align="center"><table width="100%">
<tr>
<td><input type=radio name="carry" onClick="inputChangCarry(16)">
十六进制
<input type=radio name="carry" checked onClick="inputChangCarry(10)">
十进制
<input type=radio name="carry" onClick="inputChangCarry(8)">
八进制
<input type=radio name="carry" onClick="inputChangCarry(2)">
二进制</td>
<td></td>
<td><input type=radio name="angle" value="d" onClick="inputChangAngle('d')" checked>
角度制
<input type=radio name="angle" value="r" onClick="inputChangAngle('r')">
弧度制</td>
</tr>
</table>
<table width="100%" height="40" border="0" cellpadding="0" cellspacing="1">
<tr>
<td align="center"><table width="100%">
<tr>
<td><input name="shiftf" type="checkbox" onClick="inputshift()">
上档功能
<input name="hypf" type="checkbox" onClick="inputshift()">
双曲函数 </td>
<td><input name="bracket" value="" type=text size=3 readonly style="background-color=lightgrey">
<input name="memory" value="" type=text size=3 readonly style="background-color=lightgrey">
<input name="operator" value="" type=text size=3 readonly style="background-color=lightgrey">
</td>
<td align="right"><input name="button2" type="button" class="b3"
onclick="backspace()" value=" 退格 ">
<input name="button2" type="button" class="b3"
onClick="document.calc.display.value = 0 " value=" 清屏 ">
<input name="button2" type="button" class="b3"
onClick="clearall()" value=" 全清">
</td>
</tr>
</table></td>
</tr>
</table>
<table width="100%" cellspacing="0">
<tr align="left">
<td width="29%"><table cellpadding="1" cellspacing="1">
<tr align=center>
<td width="42" height="23"><input name=pi type="button" class="b1"
onClick="inputfunction('pi','pi')" value=" PI ">
</td>
<td width="42" height="23"><input name=e type="button" class="b1"
onClick="inputfunction('e','e')" value=" E ">
</td>
<td width="42" height="23"><input name=bt type="button" class="b2"
onClick="inputfunction('dms','deg')" value="d.ms">
</td>
</tr>
<tr align=center>
<td width="42" height="23"><input name="button" type="button" class="b2" style="color=#ff00ff"
onClick="addbracket()" value=" ( ">
</td>
<td width="42" height="23"><input name="button" type="button" class="b2"
onClick="disbracket()" value=" ) ">
</td>
<td width="42" height="23"><input name=ln type="button" class="b2"
onClick="inputfunction('ln','exp')" value=" ln ">
</td>
</tr>
<tr align=center>
<td width="42" height="23"><input name=sin type="button" class="b2"
onClick="inputtrig('sin','arcsin','hypsin','ahypsin')" value="sin ">
</td>
<td width="42" height="23"><input name="button" type="button" class="b2"
onClick="operation('^',7)" value="x^y ">
</td>
<td width="42" height="23"><input name=log type="button" class="b2"
onClick="inputfunction('log','expdec')" value="log ">
</td>
</tr>
<tr align=center>
<td width="42" height="23"><input name=cos type="button" class="b2"
onClick="inputtrig('cos','arccos','hypcos','ahypcos')" value="cos ">
</td>
<td width="42" height="23"><input name=cube type="button" class="b2"
onClick="inputfunction('cube','cubt')" value="x^3 ">
</td>
<td width="42" height="23"><input name="button" type="button" class="b2"
onClick="inputfunction('!','!')" value=" n! ">
</td>
</tr>
<tr align=center>
<td width="42" height="23"><input name=tan type="button" class="b2"
onClick="inputtrig('tan','arctan','hyptan','ahyptan')" value="tan ">
</td>
<td width="42" height="23"><input name=sqr type="button" class="b2"
onClick="inputfunction('sqr','sqrt')" value="x^2 ">
</td>
<td width="42" height="23"><input name="button" type="button" class="b2"
onClick="inputfunction('recip','recip')" value="1/x ">
</td>
</tr>
</table></td>
<td width="38%"><table align="center" cellpadding="1">
<tr>
<td width="65"><input name="button" type="button" class="b3"
onClick="putmemory()" value=" 储存 ">
</td>
</tr>
<td><input name="button" type="button" class="b3"
onClick="getmemory()" value=" 取存 ">
</td>
</tr>
<tr>
<td><input name="button" type="button" class="b3"
onClick="addmemory()" value=" 累存 ">
</td>
</tr>
<tr>
<td><input name="button" type="button" class="b3"
onClick="multimemory()" value=" 积存 ">
</td>
</tr>
<tr>
<td><input name="button" type="button" class="b3"
onClick="clearmemory()" value=" 清存 ">
</td>
</tr>
</table></td>
<td width="33%" align="right"><table cellpadding="1" >
<tr align=center>
<td ><input name=k7 type="button" value=" 7 "
onClick="inputkey('7')" class="xn" ></td>
<td ><input name=k8 type="button" class="xn" value=" 8 "
onClick="inputkey('8')" >
</td>
<td><input name=k9 type="button" class="xn" value=" 9 "
onClick="inputkey('9')" >
</td>
--------------------------------------------------------------------------------
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文件</title>
<link rel="stylesheet" href="css/the.css" type="text/css" />
</head><body onKeyPress="keyboardInput()">
<script type="text/javascript" src="js/the.js"></script>
<!--======================================================-->
<div id="a">
<input type="text" id="iput" class="ipt" onclick="showwin(2)" />
<div id="win" style="display:none">
<div id="title">
<div id="exit"><font face="微软雅黑" size="3"color="#333333">简易计算器 </strong></font><a href="#" onClick="showwin(1)"><img src="images/exit.png" width="24" height="20" border="0"></a></div>
</div>
<form name="calculator"><table align="center"><tr><td colspan=4><input type="text" value="0" name="lcd" id="inp" readonly style="width:170px;text-align:right"><td></tr><tr> <td colspan=2><input type="button" value="复制结果" onclick="document.getElementById('iput').value=document.getElementById('inp').value" style="width:100%"></td> <td colspan=2><input type="button" value="清零" onClick="clearLcd()" style="width:100%"></td></tr><tr> <td><input type="button" value="7" onClick="mouseInput(value)"></td> <td><input type="button" value="8" onClick="mouseInput(value)"></td> <td><input type="button" value="9" onClick="mouseInput(value)"></td> <td><input type="button" value="/" onClick="mouseInput(value)"></td></tr><tr> <td><input type="button" value="4" onClick="mouseInput(value)"></td> <td><input type="button" value="5" onClick="mouseInput(value)"></td> <td><input type="button" value="6" onClick="mouseInput(value)"></td> <td><input type="button" value="x" onClick="mouseInput('*')"></td></tr><tr> <td><input type="button" value="1" onClick="mouseInput(value)"></td> <td><input type="button" value="2" onClick="mouseInput(value)"></td> <td><input type="button" value="3" onClick="mouseInput(value)"></td> <td><input type="button" value="-" onClick="mouseInput(value)"></td></tr><tr> <td><input type="button" value="0" onClick="mouseInput(value)"></td> <td><input type="button" value="." onClick="mouseInput(value)"></td> <td><input type="button" value="=" onClick="mouseInput(value)"></td> <td><input type="button" value="+" onClick="mouseInput(value)"></td></tr><tr><td colspan=4 style="color:red;text-align:center;">支持键盘操作<td></tr></table>
</body>
</html>
-----------------------------------------------
// JavaScript Document
var win;
var left = 50;
var top = 50;
var move = false;
function showwin(x)
{
if(x==1) document.getElementById('win').style.display = "none";
if(x==2) document.getElementById('win').style.display = "block";
}
function init() {
win = document.getElementById("win");
win.onmousedown = startDrag;
win.onmousemove = drag;
win.onmouseup = stopDrag;
}
window.onload = init;
function startDrag(event) {
event = event || window.event;
var x = event.pageX || event.x;
var y = event.pageY || event.y;
left = x - left;
top = y - top;
win.style.background = "#9CEF9E";
move = true;
}
function drag(event) {
if(move) {
event = event || window.event;
win.style.background = "#9CEF9E";
var x = event.pageX || event.x;
var y = event.pageY || event.y;
win.style.left = x - left + "px";
win.style.top = y - top + "px";
//captureEvents();
//win.setCapture();
if (!window.captureEvents) {
win.setCapture();
} else {
captureEvents();
//window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
}
}
}
function stopDrag(event) {
event = event || window.event;
win.style.background="#9CEF9E";
var x = event.pageX || event.x;
var y = event.pageY || event.y;
left = x - left;
top = y - top;
move = false;
//routeEvent();
//win.releaseCapture();
if (!window.releaseEvents) {
win.releaseCapture();
} else {
releaseEvents();
//window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);
}
}
var oper1=0; //操作数一var oper2=0; //操作数二var operator=0; //运算符var point=false;function calc(num){ with(calculator.lcd) //下面的value默认为calculator.lcd的value { if(operator==0) //当没有运算符被按下的时候 { if(point==true)value+=num; else { if(parseFloat(value)==0 || oper1!=0)value = num; //当屏幕上现显示的不是(初始为)或者应经有操作数一,直接对value赋值 else value = "" + parseFloat(value) + num; //否则,连接到原来的末尾 value += "."; } } else //当有运算符被按下 { if(point==true) { value+=num; } else { if(oper2==0)value=num; //当操作数二还没输入的时候,直接对value赋值 else value = "" + parseFloat(value) + num; //操作数二已被输入的时候,连接到原来的末尾 value += "."; } oper2 = parseFloat(value); //把屏幕上现显示的数值放到操作数二 } }} function compute(){ point=false; if(operator==0) //若之前没有其他操作符被按下 { oper1 = parseFloat(calculator.lcd.value); //保存屏幕上的值到操作数一 return; //退出 } //若是其他情况 result=""+eval(oper1 + operator + oper2); result+=(result.indexOf(".")==-1)?".":""; calculator.lcd.value = result; //将屏幕上的值设置为两操作数计算结果 oper1 = parseFloat(calculator.lcd.value); //把计算结果放入操作数一,准备下一次计算 oper2 = 0; //操作数二重新置为} function input(key){ if(key>=0 && key<=9) { calc(key); } else { compute(); //调用计算函数 operator=(key=="=")?0:key; }} function keyboardInput(){ var key = event.keyCode; if(key>=48 && key<=57) { key-=48; //0~9对应于ASCII编码~57 } else if(key==46){point=true;return;} else { switch(key) { case 43: key = "+";break; case 45: key = "-";break; case 42: key = "*";break; case 47: key = "/";break; case 61: case 13: key = "="; input(key); getValue(); break; default: {alert("请输入数字或运算符!");return;} } } input(key);} function mouseInput(key){ if(key=="."){point=true;return;} if(parseFloat(key)>=0 && parseFloat(key<=9)) key=parseFloat(key); input(key);} function clearLcd(){ point=false; oper1=0; //操作数一 oper2=0; //操作数二 operator=0; //运算符 calculator.lcd.value = "0";} function getValue(){ window.returnValue = calculator.lcd.value; window.close();
}//-->
function copyinput()
{
var input=document.getElementById("inp");//input的ID值
input.select(); //选择对象
document.execCommand("Copy"); //执行浏览器复制命令
alert("copy succeed!");
}
----------------------------------------------------------
[color=#FF0000]css[/color]
------------------------------------------------------------
@charset "utf-8";
/* CSS Document */
body {
font-family:Verfana;
font-size:11px;
color:#9CEF9E;
}
#win {
position:absolute;
left:50px;
top:50px;
width:25%;
height:auto; background-color: #9CEF9E;
}
#d {
background-color: #9CEF9E;
float: left;
height: 333px;
width: 333px;
}
#a {
background-color: #CCC;
float: left;
height: 333px;
width: 100%;
}
#title {
background-image: url(../images/title_bg.jpg);
height: 25px;
width: 100%;
}
#exit {
float: right;
height: auto;
width: auto;
margin-right: 10px;
}
input{
width:40px;
color: #060;
border:1px solid #0C3;
background-color: #ffffff;
}
.ipt{
width:100px;
color: #060;
border:1px solid #0C3;
background-color: #ffffff;
}