Reputation: 6519
What do I have to do to have a function on a website where it says it will redirect you to the site in 3 seconds or so?
Upvotes: 177
Views: 469107
Reputation: 6052
This implements noam's counter solution into a string for better user experience and uses ForguesR's suggestions to make it more robust for slower connections:
const message = document.querySelector(".message");
message.innerText = "Redirecting you to the next page in ";
message.insertAdjacentHTML("beforeend", "<span id='counter'>3</span> seconds.");
setInterval(function () {
var span = document.querySelector("#counter");
var count = span.textContent * 1 - 1;
span.textContent = count < 0 ? 0 : count;
if (count === 0) {
window.location.replace("/payment");
}
}, 1000);
<div class="message"></div>
Upvotes: 0
Reputation: 1961
The simplest way is using HTML META tag like this:
<meta http-equiv="refresh" content="3;url=http://example.com/" />
Upvotes: 16
Reputation: 12953
Here's a complete (yet simple) example of redirecting after X seconds, while updating a counter div:
<html>
<body>
<div id="counter">5</div>
<script>
setInterval(function() {
var div = document.querySelector("#counter");
var count = div.textContent * 1 - 1;
div.textContent = count;
if (count <= 0) {
window.location.replace("https://example.com");
}
}, 1000);
</script>
</body>
</html>
The initial content of the counter
div is the number of seconds to wait.
Upvotes: 33
Reputation: 5165
If you want greater control you can use javascript rather than use the meta tag. This would allow you to have a visual of some kind, e.g. a countdown.
Here is a very basic approach using setTimeout()
<html>
<body>
<p>You will be redirected in 3 seconds</p>
<script>
var timer = setTimeout(function() {
window.location='http://example.com'
}, 3000);
</script>
</body>
</html>
Upvotes: 73
Reputation: 5978
Use this simple javascript code to redirect page to another page using specific interval of time...
Please add this code into your web site page, which is you want to redirect :
<script type="text/javascript">
(function(){
setTimeout(function(){
window.location="http://brightwaay.com/";
},3000); /* 1000 = 1 second*/
})();
</script>
Upvotes: 1
Reputation: 2273
Place the following HTML redirect code between the and tags of your HTML code.
<meta HTTP-EQUIV="REFRESH" content="3; url=http://www.yourdomain.com/index.html">
The above HTML redirect code will redirect your visitors to another web page instantly. The content="3; may be changed to the number of seconds you want the browser to wait before redirecting. 4, 5, 8, 10 or 15 seconds, etc.
Upvotes: 4
Reputation: 269348
You're probably looking for the meta
refresh
tag:
<html>
<head>
<meta http-equiv="refresh" content="3;url=http://www.somewhere.com/" />
</head>
<body>
<h1>Redirecting in 3 seconds...</h1>
</body>
</html>
Note that use of meta
refresh
is deprecated and frowned upon these days, but sometimes it's the only viable option (for example, if you're unable to do server-side generation of HTTP redirect headers and/or you need to support non-JavaScript clients etc).
Upvotes: 82
Reputation: 1038730
<meta http-equiv="refresh" content="3;url=http://www.google.com/" />
Upvotes: 268