在指定时间后重定向网站
Posted
技术标签:
【中文标题】在指定时间后重定向网站【英文标题】:Redirect website after specified amount of time 【发布时间】:2011-03-18 13:10:02 【问题描述】:我必须做些什么才能在网站上拥有一个功能,它说它将在 3 秒左右将您重定向到该网站?
【问题讨论】:
How can i redirect to a page (home) via another page(success page) where some success message is to be displayed?的可能重复 我很好奇,你为什么要这样做?每次我访问这样的页面,我宁愿在 0 秒内被引导。 @allesklar 抱歉回复晚了。我正在开发一个网站,我想看看是否可以更轻松地从代码编辑器切换到网络浏览器,而无需每次都刷新。 这个JS redirect 生成器将帮助您轻松创建延迟重定向sn-ps。它有一个 noscript 和 seo 支持,还有一个 IE 8 - 和更低的 - 修复来传递 http 引用! @allesklar 是使用此功能的一个示例。如果您更改域并希望每个人在第一个月被重定向到新域(但让他们知道旧域将在一个月左右后被删除)。因为即使您发送和发送电子邮件,也总会有人忘记并转到旧域。 【参考方案1】:<meta http-equiv="refresh" content="3;url=http://www.google.com/" />
【讨论】:
或者如果你有多个使用 的站点,则只重定向到根目录 W3C 建议不要使用这个标签:w3.org/TR/WCAG10-html-TECHS/#meta-element【参考方案2】:您可能正在寻找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>
请注意,meta
refresh
的使用如今已被弃用和反对,但有时它是唯一可行的选择(例如,如果您无法在服务器端生成 HTTP 重定向标头和/或您需要支持非 javascript 客户端等)。
【讨论】:
【参考方案3】:最简单的方法是像这样使用 HTML META 标签:
<meta http-equiv="refresh" content="3;url=http://example.com/" />
Wikipedia
【讨论】:
【参考方案4】:如果您想要更好的控制,您可以使用 javascript 而不是使用元标记。这将使您拥有某种视觉效果,例如倒计时。
这是使用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>
【讨论】:
如果您希望文本在重定向之前动态倒数到 0,这将是一种可行的方法。使用 1 秒计时器,其中计时器函数更新 HTML 文本,然后启动新的 1 秒计时器,直到 3 秒过去,然后执行重定向。【参考方案5】:将以下 HTML 重定向代码放在 HTML 代码的 和 标记之间。
<meta HTTP-EQUIV="REFRESH" content="3; url=http://www.yourdomain.com/index.html">
上面的 HTML 重定向代码会立即将您的访问者重定向到另一个网页。 content="3; 可以更改为您希望浏览器在重定向之前等待的秒数。4、5、8、10 或 15 秒等。
【讨论】:
【参考方案6】:使用这个简单的 javascript 代码使用特定的时间间隔将页面重定向到另一个页面...
请将此代码添加到您要重定向的网站页面中:
<script type="text/javascript">
(function()
setTimeout(function()
window.location="http://brightwaay.com/";
,3000); /* 1000 = 1 second*/
)();
</script>
【讨论】:
<meta http-equiv="refresh" content="3;url=http://example.com/" />
是一个更好的选择,因为它更简单且无需 JavaScript 支持即可工作。
你是对的兄弟......但这取决于具体情况......有时我们需要重定向特定事件,因为 JS 是最好的选择。
我明白你的意思,“Sunny S.M”。尽管几乎总是应该使用元标记,但在某些特定情况下,如您的情况,JavaScript 可能是唯一的选择。【参考方案7】:
这是一个在 X 秒后重定向的完整(但简单)示例,同时更新计数器 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>
counter
div 的初始内容是等待的秒数。
【讨论】:
直到我将location.href="https://example.com";
替换为 window.location='https://example.com'
后才起作用
由于此处讨论的原因,使用window.location.replace("http://example.com");
可能会更好:***.com/a/506004 更改将使此答案更加通用。
如果重定向目标响应缓慢(超过 1 秒),则多次调用 window.location.replace()
并且 X 秒 count
可能为负数。我修改了两行:div.textContent = ((count < 0) ? 0 : count);
和 if (count == 0)
。以上是关于在指定时间后重定向网站的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Google signInWithRedirect 未在成功验证后重定向到指定页面