こんにちは私はjavascriptの初心者で、今日これに一生懸命取り組みましたが、解決策を見つけることができませんでした。私を助けてください。
<script>
if (/*@cc_on!@*/false) {
document.onfocusin = startB;
document.onfocusout = stopB;
} else {
window.onfocus = startB;
window.onblur = stopB;
}
var x = 1000;
var y = 1;
function startB() {
if (x !== 'ok') {
x = x - y;
document.form.num.value = x;
timeoutID=setTimeout("startB()", 1000);
}
if (x == 0) {
x = 'ok';
document.form.num.value = x;
}
}
function stopB() {
clearTimeout(timeoutID);
}
</script>
<body onLoad="startB()">
<form name="form">
<input name="num" size="10" readonly="readonly" type="text">
</form>
このページを開くと、通常は1 /秒の値でカウントダウンし、ウィンドウ/タブを変更すると停止し、再び1 /秒継続します。これは私が望むことですが、大きな問題があります->いつこのリンクに移動してウィンドウ/タブをすばやく変更します。これはまだアンロードされており、onblurステータスでカウントダウンを開始し、onfocusステータスに戻ると、関数が2回読み取られ、1/0.5秒でカウントダウンが開始されます。 。ダブル。
誰かがこれを手伝ってくれますか?前もって感謝します。