如何使用JavaScript重定向到另一个网页

JavaScript提供了许多将用户重定向到其他网页的方法。学习规范的方法,并使用普通的JavaScript找出所有可用的选项

JavaScript提供了许多将用户重定向到其他网页的方法,如果在执行程序期间您需要移动到其他页面。

可以认为可以导航到新URL的规范是

window.location = 'https://newurl.com'

如果要重定向到同一域上的其他路径,请使用:

window.location.pathname = '/new'

这是使用location由提供的对象历史API

其他重定向选项

与编程中的大多数事情一样,执行相同操作的方法有很多。

自从window在浏览器中是隐式的,您还可以执行以下操作:

location = 'https://newurl.com'

另一种方法是设置href的财产location

window.location.href = 'https://newurl.com'

location也有一个assign()接受URL并执行相同操作的方法:

window.location.assign('https://newurl.com')

replace()方法与以前的方法不同,因为它会重写历史记录中的当前页面。当前页面已被擦除,因此,当您单击“后退”按钮时,您将返回到该页面。现在是最后一次拜访的人。

window.location.replace('https://newurl.com')

在某些情况下这可能很方便。

不同的方式达到window目的

浏览器显示selftop对象,这些对象都引用了window对象,因此您可以使用它们代替window在以上所有示例中:

self.location = 'https://newurl.com'

top.location = https://newurl.com

301使用伺服器端指令重新导向

上面的示例均考虑了通过程序决策转移到其他页面的情况。

如果由于当前URL旧而需要重定向,然后移动新URL,则最好使用服务器级指令并设置301 HTTP代码,以向搜索引擎发出信号,表明当前URL已永久移至新资源。

这可以通过.htaccess如果使用Apache。Netlify通过一个做到这一点_redirects文件

使用JavaScript是否可以进行301重定向?

不幸的是没有。

在客户端这是不可能的。

必须先从服务器发送301 HTTP响应代码,然后才能由浏览器执行JavaScript。

实验表明,JavaScript重定向是由搜索引擎解释的,例如301重定向。看此搜索引擎土地发布以供参考。

谷歌说

使用JavaScript重定向用户可能是合法的做法。例如,如果您在用户登录后将其重定向到内部页面,则可以使用JavaScript进行操作。在检查JavaScript或其他重定向方法以确保您的网站遵守我们的指南时,请考虑其意图。请记住,在移动网站时,最好使用301重定向,但是如果您无权访问网站的服务器,则可以使用JavaScript重定向。

使用HTML元标记

另一种选择是在HTML中使用meta标签:

<html>
  <head>
    <meta http-equiv="refresh" content="0;URL=https://newurl.com/">
  </head>
</html>

一旦加载并解释了当前页面,这将导致浏览器加载新页面,而不会向搜索引擎发出任何信号。最佳选择始终是使用301服务器级重定向。

免费下载我的JavaScript初学者手册


更多js教程: