Вариант таймера ... немного его перекомпоновал ... добавил клавиши клавиатуры как в варианте
FINoM, Старт/пауза (Пробел или Enter) Новый вариант (Esc) ... основное достоинство выводит точно (максимально возможное в данном коде) время при нажатии на паузу или кнопку M+ независимо от выставленной паузы в setTimeout("startTIME()",
50) ... можно следовательно снизить нагрузку на процессор точность не потеряется ...
<html>
<head>
<script language="javascript">
var clocktimer, dateObj, dh, dm, ds, ms, readout = "",
show = !0,
init = 0,
ii = 0,
pause = 0;
function clearALL() {
clearTimeout(clocktimer);
init = 0;
readout = "00:00:00.00";
document.clockform.clock.value = readout;
var a = document.clockform;
for (ij = 0; 10 > ij; ij++) a["m" + ij].value = "";
ii = 0
}
function addMEM() {
if (!0 == show ) clearTimeout(clocktimer), startTIME(), document.clockform["m" + ii].value = readout, ii = ++ii % 10
}
function startTIME() {
var a = new Date((new Date).getTime() - dateObj.getTime());
dh = ("0" + a.getUTCHours()).replace(/.+?(\d{2})$/, "$1");
dm = ("0" + a.getUTCMinutes()).replace(/.+?(\d{2})$/, "$1");
ds = ("0" + a.getUTCSeconds()).replace(/.+?(\d{2})$/, "$1");
ms = ("0" + (a.getUTCMilliseconds() / 5 >> 1)).replace(/.+?(\d{2})$/, "$1");
readout = dh + ":" + dm + ":" + ds + "." + ms;
document.clockform.clock.value = readout;
!0 == show && (clocktimer = setTimeout("startTIME()", 50))
}
function findTIME() {
0 == init ? (dateObj = new Date, init = 1, show = !0) :
!0 == show ? (clearTimeout(clocktimer), show = !1, pause = new Date) :
(show = !0, dateObj = new Date(dateObj.getTime() + (new Date).getTime() - pause.getTime()));
startTIME()
};
document.onkeypress = function (a) {
a = window.event ? window.event.keyCode : a.which;
(13 == a || 32 == a) && findTIME();
27 == a && clearALL()
};
</script>
<title></title>
</head>
<body>
<form name="clockform">
<table border="0" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<td><input name="clearer" value=" reset "
onclick="clearALL()" type="button"></td>
<td><input name="clock" size="12"
value="00:00:00.00"></td>
</tr>
<tr>
<td><input name="marker" value=" m + "
onclick="addMEM()" type="button"></td>
<td><input name="starter" value="start / pause"
onclick="findTIME()" type="button"></td>
</tr>
<tr>
<td><b>m 0</b></td>
<td><input name="m0" size="12"></td>
</tr>
<tr>
<td><b>m 1</b></td>
<td><input name="m1" size="12"></td>
</tr>
<tr>
<td><b>m 2</b></td>
<td><input name="m2" size="12"></td>
</tr>
<tr>
<td><b>m 3</b></td>
<td><input name="m3" size="12"></td>
</tr>
<tr>
<td><b>m 4</b></td>
<td><input name="m4" size="12"></td>
</tr>
<tr>
<td><b>m 5</b></td>
<td><input name="m5" size="12"></td>
</tr>
<tr>
<td><b>m 6</b></td>
<td><input name="m6" size="12"></td>
</tr>
<tr>
<td><b>m 7</b></td>
<td><input name="m7" size="12"></td>
</tr>
<tr>
<td><b>m 8</b></td>
<td><input name="m8" size="12"></td>
</tr>
<tr>
<td><b>m 9</b></td>
<td><input name="m9" size="12"></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>