したがって、ページに 2 つのスクリプトがあります。
- 最初のものは、配列からランダムに数字を選択し、それを「number」という要素に挿入します。
- 2 つ目は、分と秒として解釈される 2 つの変数からカウントダウンするカウントダウン スクリプトです。カウントダウンがゼロになるとサウンドが再生されます。
現時点では、2 番目のスクリプトはすべて手動でセットアップされているため、分数と秒数はスクリプト自体にハードコーディングされています。最初のスクリプトでページに挿入された数字を 2 番目のスクリプトで取得し、それを変数として使用するようにしたいと思います。
これが私がどのように機能させたいかのより良い例です:
ページを読み込むと、(X) 分しか残っていないことがわかり (X = 最初のスクリプトによって挿入されます)、(X) が何であれ、2 番目のスクリプトの「分」変数として機能します。ページの別の場所に (X) 分からのカウントダウンを表示します。
最初のスクリプトの出力は次の場所に挿入されます。
<span id="minutes"></span>
2 番目のスクリプト (変更が必要なスクリプト) のコードは次のとおりです。
var interval;
var minutes = 5;
var seconds = 0;
window.onload = function() {
countdown('countdown');
}
function play(file) {
var embed = document.createElement("embed");
embed.setAttribute('src', file);
embed.setAttribute('hidden', true);
embed.setAttribute('autostart', true);
document.body.appendChild(embed);
}
function countdown(element) {
interval = setInterval(function() {
var el = document.getElementById(element);
if(seconds == 0) {
if(minutes == 0) {
el.innerHTML = "Time's up!";
clearInterval(interval);
play('alarm.mp3');
return;
} else {
minutes--;
seconds = 60;
}
}
if(minutes > 0) {
var minute_text = minutes + (minutes > 1 ? ' minutes' : ' minute');
} else {
var minute_text = '';
}
var second_text = seconds > 1 ? 'seconds' : 'second';
el.innerHTML = minute_text + ' ' + seconds + ' ' + second_text + ' remaining';
seconds--;
}, 1000);
}
変えてみました
var minutes = 5;
var seconds = 0;
に
var minutes = document.getElementById(minutes);
var seconds = 0;
(2 番目のスクリプトは最初のスクリプトの後に実行されます)
...しかし、「null」分から始まるだけで、うまくいかないようです。
誰かがこれに光を当てることができますか?