使用 meta 实现页面的定时刷新或跳转

这个方法最开始是在 Linlin Yan (颜林林) 的 GitHub Pages 上第一次看到。后来,随着自己也用上了,就开始有了更深一些的认识。

跳转域名

在 yanlinlin82/yanlinlin82.github.io 看到一个通过 https://yanlinlin82.github.io 可以直接重定向到 https://yanlinlin.cn/ 的用法 —— 只需要把 index.html 写成这样就可以:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
  <head><meta http-equiv="refresh" content="0; url=https://yanlinlin.cn/"></head>
  <body></body>
</html>

页面定时跳转与刷新

这部分的内容主要来源自:《小tip: 使用meta实现页面的定时刷新或跳转》。

meta 源信息功能之页面定时跳转与刷新

几乎所有的网页头部都有<meta>源信息。除了我们常用的定义编码、关键字(name=”keywords”)、描述(name=”description”)(for SEO),还可以定义视区大小、缩放比例等(for 移动端),如下:

代码语言:javascript
复制
<meta name="viewport" content="width=device-width,initial-scale=1.0">

以及,定义网页的过期时间,Cookie 的过期时间等等。

文本要介绍的内容,科科,跟上面都没关系。哦,抱歉,都有关系,只是名称我故意没提到。主角嘛,总要最后闪亮登场!

就是我们网页平时跳转,还可以使用 <meta> 实现,下面几个典型代码示例:

代码语言:javascript
复制
<meta http-equiv="refresh" content="5">

这个表示当前页面每5秒钟刷一下,刷一下~

代码语言:javascript
复制
<meta http-equiv="refresh" content="2; url='/'">

这个表示当前页面2秒后跳到首页~

代码语言:javascript
复制
<meta http-equiv="refresh" content="0; url='http://www.qq.com/'">

页面直接跳转到腾讯网~

所以,当我们下次遇到“登录成功,正在跳转到您之前访问页面……”的时候,可以使用<meta>的这个refresh刷新,跳转功能,可以说是成本最低的。

您可以狠狠地点击这里:meta与当前页面定时刷新Demo

上面 Demo 效果就是上面第1个示例代码效果。

根据我的测试,此特性包括IE7在内的浏览器都是支持的。

问题来了:为何 meta 跳转不火呢?

大家可以看到,meta 跳转,使用方便,不用写 JS,不用会后台代码,定时跳转刷新什么的玩得照样很溜,而且兼容性好,为啥总感觉不温不火,很少看见有人提及呢?

新晋的小伙伴不知有没有听过这么一个词,叫做“万恶的IE6年代”。

据说,当年,这一批老旧的浏览器,问题很多,其中就有对meta 两个小小的不友好。我也是听说,不一定准确。坊间是这么传闻的:

  • 时间设为0的跳转,有时候页面会闪一下;
  • 跳转到其他页面,浏览器后退按钮是不能用的;

但是啊,现在是什么年代啊,监狱风云都拍到第二季了,这些老问题,我觉得就可以忽略不计了。

不妨大胆试试 meta 跳转,好好利用下浏览器的原生特性,说不定就会发现比什么 JS 跳转之流用得更开心。

所以,在文章的最后有一个小想法 —— 我们是不是也可以利用这个方法实现无数个链接 301 重定向( URL 转发),再也不需要担心是否需要主机+Nginx 之类!