页面重定向(Page Redirect)
Redirect是一种将用户和搜索引擎发送到与其最初请求的URL不同的URL的方法。 页面重定向是一种自动将网页重定向到另一个网页的方法。 重定向页面通常位于同一网站上,或者可以位于不同的网站或Web服务器上。
JavaScript页面重定向
window.location and window.location.href
在JavaScript中,您可以使用许多方法将网页重定向到另一个网页。 几乎所有方法都与window.location对象有关,它是Window对象的一个属性。 它可用于获取当前URL地址(Web地址)并将浏览器重定向到新页面。 两种用法在行为方面都是相同的。 window.location返回一个对象。 如果未设置.href ,则window.location默认更改参数.href 。
例子 (Example)
<!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() vs. replace()
assign()和replace()方法之间的区别在于location.replace()方法从文档历史记录中删除当前URL,因此无法导航回原始文档。 在这种情况下,您无法使用浏览器“后退”按钮。 如果要避免这种情况,则应使用location.assign()方法,因为它在浏览器中加载新文档。
location.reload()
location.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/" />