我完全是JavaScript的初学者,我正在尝试制作加载<a href=""></a>
我正在使用此代码进行倒计时
<script language="Javascript">
var countdown;
var countdown_number;
function countdown_init() {
countdown_number = 11;
countdown_trigger();
}
function countdown_trigger() {
if(countdown_number > 0) {
countdown_number--;
document.getElementById('countdown_text').innerHTML = countdown_number;
if(countdown_number > 0) {
countdown = setTimeout('countdown_trigger()', 1000);
}
}
}
function countdown_clear() {
clearTimeout(countdown);
}
</script>
我想在计数达到0后正好加载此<a href="bgplayer-stop://"></a>
...我完全迷失了......我该怎么办?
它基本上是一个倒数,在达到0后停止音乐播放器。我想设置几个倒计时10分钟,15分钟和30分钟......
谢谢!
答案 0 :(得分:0)
这是一个简单的例子,主要使用你上面的内容。这需要进行一些扩展以便进行多次倒计时,但总体思路就在这里。
小提琴:http://jsfiddle.net/zp6nfc9b/5/
HTML:
<a id="link_to_click" href="bgplayer-stop://">link</a>
<span id="countdown_text"></span>
JS:
var countdown_number;
var countdown_text = document.getElementById('countdown_text');
var link_to_click = document.getElementById('link_to_click');
function countdown_init() {
countdown_number = 11;
countdown_trigger();
}
function countdown_trigger() {
countdown_number--;
countdown_text.innerHTML = countdown_number;
if (countdown_number > 0) {
setTimeout(
function () {
countdown_trigger();
}, 1000
);
}
else {
link_to_click.click();
}
}
link_to_click.addEventListener('click',
function () {
countdown_text.innerHTML = 'link was clicked after countdown';
}
);
countdown_init();
为了解释一些部分,我认为总的来说你有正确的想法。
我只添加了eventListener
,因此您可以看到该链接实际上已被点击,并在countdown_text
为您显示一条消息。
您不需要多次检查countdown_number
所以我删除了if if block。
另外,您也不需要清除超时。一旦执行它就会自动清除。如果你想在它完成之前停止它,你真的只需要清除超时,但是因为我们依赖超时完成以便不需要进行下一步。
答案 1 :(得分:0)
var countdown;
var countdown_number;
function countdown_init(time) {
countdown_number = time;
countdown_trigger();
}
function countdown_trigger() {
if (countdown_number > 0) {
countdown_number--;
document.getElementById('countdown_text').innerHTML = countdown_number;
setTimeout('countdown_trigger()', 1000)
} else { // when reach 0sec
stop_music()
}
}
function stop_music(){
window.location.href = "bgplayer-stop://"; //will redirect you automatically
}