ES6 - 页面重定向

重定向是一种将用户和搜索引擎发送到与他们最初请求的URL不同的URL的方法.页面重定向是一种自动将网页重定向到另一个网页的方法.重定向的页面通常位于同一网站上,或者可以位于不同的网站或Web服务器上.

JavaScript页面重定向

window.location和window.location.href

在JavaScript中,您可以使用许多方法将网页重定向到另一个网页.几乎所有方法都与 window.location 对象相关,后者是Window对象的一个属性.它可用于获取当前URL地址(Web地址)并将浏览器重定向到新页面.两种用法在行为方面都是相同的. window.location 返回一个对象.如果未设置 .href ,则 window.location 默认更改参数 .href .

示例

<!DOCTYPE html> 
<html> 
   <head> 
      <script> 
         function newLocation() { 
            window.location = "http://www.xyz.com"; 
         } 
      </script> 
   </head> 

   <body> 
      <input type = "button" value = "Go to new location" onclick = "newLocation()"> 
   </body> 
</html>



location.replace()

另一个最常用的方法是window.location对象的 replace()方法,它将用新的替换当前文档.在replace()方法中,您可以将新URL传递给replace()方法,它将执行HTTP重定向.

以下是相同的语法.

window.location.replace("http://www.abc.com

location.assign()

location.assign()方法在浏览器窗口中加载新文档.

以下是相同的语法.

window.location.assign("http://www.abc.org");

assign()与replace()

assign()和replace()方法之间的区别在于location.replace()方法从文档历史记录中删除当前URL,因此它无法导航回在这种情况下你不能使用浏览器"后退"按钮.如果你想避免这种情况,你应该使用location.assign()方法,因为它在浏览中加载一个新文档r.

location.reload()

位置. reload()方法在浏览器窗口中重新加载当前文档.

以下是相同的语法.

window.location.reload("http://www.yahoo.com");


window.navigate()

window.navigate()方法类似为window.location.href属性分配新值.因为它仅在MS Internet Explorer中可用,所以您应该避免在跨浏览器开发中使用它.

以下是相同的语法.

window.navigate("http://www.abc.com");


重定向和搜索引擎优化

如果您想通知搜索引擎(SEO)您的URL转发,你应该将rel ="canonical"元标记添加到你的网站头部,因为搜索引擎不会分析JavaScript来检查重定向.

以下是相同的语法.

<link rel = "canonical" href = "http://abc.com/" />