JQuery/Javascript - Перенаправить на предыдущую страницу, когда обратный отсчет достигнет нуля?
Это мой первый вопрос, и я довольно новичок в JS. Во всяком случае, я нашел этот таймер обратного отсчета на JSFiddle ( http://jsfiddle.net/gPrwW/395/), и мне было интересно, какие изменения необходимо внести, чтобы перенаправить на предыдущую страницу после того, как таймер достигнет нуля? Спасибо за помощь!
$(document).ready(function(e) {
var $worked = $("#worked");
function update() {
var myTime = $worked.html();
var ss = myTime.split(":");
var dt = new Date();
dt.setHours(0);
dt.setMinutes(ss[0]);
dt.setSeconds(ss[1]);
var dt2 = new Date(dt.valueOf() - 1000);
var temp = dt2.toTimeString().split(" ");
var ts = temp[0].split(":");
$worked.html(ts[1] + ":" + ts[2]);
setTimeout(update, 1000);
}
setTimeout(update, 1000);
});
5 ответов
Попробуйте это:
<html>
<head>
<script src="https://code.jquery.com/jquery-2.2.3.js" integrity="sha256-laXWtGydpwqJ8JA+X9x2miwmaiKhn8tVmOVEigRNtP4=" crossorigin="anonymous"></script>
<script>
$(document).ready(function(e) {
var $worked = $("#worked");
function update() {
var myTime = $worked.html();
if (myTime == "00:00") {
window.history.back();
return;
}
var ss = myTime.split(":");
var dt = new Date();
dt.setHours(0);
dt.setMinutes(ss[0]);
dt.setSeconds(ss[1]);
var dt2 = new Date(dt.valueOf() - 1000);
var temp = dt2.toTimeString().split(" ");
var ts = temp[0].split(":");
$worked.html(ts[1] + ":" + ts[2]);
setTimeout(update, 1000);
}
setTimeout(update, 1000);
});
</script>
</head>
<body>
<div id="worked">00:10</div>
</body>
</html>
Вы можете использовать это;), вернется на предыдущую страницу.
function myReturnFunction() {
setTimeout(function(){
history.go(-1);
}, 3000);
};
Как насчет этого?
if (ts.join("") === "000000") {
alert("Zero!")
//location.href = "https://www.google.co.jp"
} else {
$worked.html(ts[1] + ":" + ts[2]);
setTimeout(update, 1000);
}
Я только что обновил ваш код. Check it out https://jsfiddle.net/gPrwW/397/
Итак, пара замечаний о том, что происходит в коде, который вы разместили. Во-первых, вы используете Date
объект. Документация для Date
можно найти здесь: ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date). Таким образом, вы можете сделать что-нибудь, где вы проверите ts[0]
а также ts[1]
равны нулю, но они обе строки, и лично я не люблю проверять такие строки.
Тем не мение, Date
имеет два метода под названием getMinutes()
а также getSeconds()
что оба возвращают числа. Таким образом, вы можете поставить чек, прямо перед инициализацией temp
, Это может выглядеть примерно так:
if(dt2.getMinutes() === 0 && dt2.getSeconds() === 0) {
// do what you want to do at the end of countdown
return; // return out of the function to stop it from continuing
}
Далее, чтобы перейти на предыдущую страницу, используйте window.history
, Если вы хотите перейти на совершенно другую страницу, вы можете использовать window.location
, Документация для обоих находится здесь: https://developer.mozilla.org/en-US/docs/Web/API/Window
Я действительно рекомендую взглянуть на документацию, не только потому, что есть другие интересные вещи, которые вы можете сделать, но и вы привыкнете просматривать документацию для ответов. Там много действительно полезной информации.