ES6 页面重定向
页面重定向是一种将用户和搜索引擎发送到与他们最初请求的 URL 不同的 URL 的方法。 页面重定向是一种自动将网页重定向到另一个网页的方法。 重定向的页面通常在同一个网站上,也可以在不同的网站或网络服务器上。
JavaScript 页面重定向
window.location
和 window.location.href
在 JavaScript 中,我们可以使用多种方法将网页重定向到另一个网页。 几乎所有方法都与 window.location
对象有关,它是 Window 对象的一个属性。 它可用于获取当前 URL 地址(网址)并将浏览器重定向到新页面。 这两种用法在行为方面是相同的。 window.location
返回一个对象。 如果没有设置 .href ,window.location
默认更改参数 .href。
示例
<!DOCTYPE html>
<html>
<head>
<script>
function newLocation() {
window.location = "https://www.jiyik.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() vs. replace()
assign()
和 replace()
方法的区别在于 location.replace()
方法会从文档历史记录中删除当前 URL,因此无法导航回原始文档。 在这种情况下,我们不能使用浏览器的“后退”按钮。 如果你想避免这种情况,你应该使用 location.assign()
方法,因为它会在浏览器中加载一个新的 Document。
location.reload()
location.reload()
方法在浏览器窗口中重新加载当前文档。
以下是相同的语法。
window.location.reload("https://www.jiyik.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/" />