用 JavaScript 重定向到一个网页
-
JavaScript 使用
location.href()
重定向网页 -
JavaScript 使用
location.replace()
重定向网页 -
JavaScript 使用
location.assign()
重定向网页 - JavaScript 通过动态创建锚元素来重定向网页
- 结论
JavaScript 中有多种方法可以重新路由用户。这取决于业务要求,该站点应具有哪种重定向行为。你可以通过以下方式重定向用户:
location.href()
location.replace()
location.assign()
- 动态创建锚元素
JavaScript 使用 location.href()
重定向网页
将 location
接口与 Document
和 Window
对象一起使用进行重定向。通常,window.location.href
返回当前页面的 URL。例如,如果运行以下代码,你将看到页面 URL:
console.log(window.location.href)
输出:
"https://www.delftstack.com/"
诀窍是通过为 window.location.href
分配一个不同的 URL 来替换此 URL。这将使浏览器加载 URL 指定的页面,从而重定向到该页面。就网站历史记录堆栈而言,此方法更改当前参考 URL。以下代码将导航到 DelfStack
的操作方法页面。
window.location.href = 'https://www.delftstack.com/howto/';
备注
- 加载新的 URL 后,可通过浏览器后退按钮访问较旧的网页。
- 这是最常用的重定向方法
JavaScript 使用 location.replace()
重定向网页
如果你希望永久地移至网页,请使用 location.replace
。区别在于,location.replace
将用新的 URL 替换当前的 URL。因此,用户将无法返回到先前的 URL。就浏览器历史记录堆栈而言,该方法会弹出最后一个网页 URL,并将 URL 推送到值中。
window.location.replace('https://www.delftstack.com');
执行此操作将加载 https://www.delftstack.com
网站。
备注
- 我们建议仅在必要时使用此方法。
- 无法使用此方法返回上一链接。因此,这可能不是良好的用户体验。
JavaScript 使用 location.assign()
重定向网页
与 location.replace()
一样,assign()
方法也具有以下区别:当前链接保留在浏览器历史记录中。因此,用户将能够使用浏览器后退按钮返回上一页。此方法还将目标 URL 作为参数。
window.location.assign('https://www.delftstack.com');
JavaScript 通过动态创建锚元素来重定向网页
在较旧的浏览器中,尤其是版本 8 或更低版本的 Internet Explorer,不支持位置界面。因此,我们动态创建锚标签(<a>
),并使用目标 URL 设置 href
属性。如前所述,锚标签是一个被动元素,需要用户交互才能调用它。因此,在代码中触发了 click 事件,以使重定向生效。
let targetURL = 'https://www.delftstack.com';
let newURL = document.createElement('a');
newURL.href = targetURL;
document.body.appendChild(newURL);
newURL.click();
在这里,我们通过以下方式实现重定向:
- 创建锚标签元素
document.createElement('a');
- 使用
新 URL newURL.href = targetURL
设置href
属性 - 使用
document.body.appendChild(newURL)
将动态创建的标签附加到 DOM 节点 - 最后,通过模拟用户点击
newURL.click()
来调用它。
浏览器将加载新的 URL。
结论
根据业务需求,最好在用户进入维护不足的网站网页时使用 meta 刷新方法来重定向用户。如果导航旨在基于用户单击,则使用锚标签非常普遍。我们可以使用 JavaScript 中 locationwindow.location.href
和 window.location.assign()
,以编程方式将用户发送到新的 URL。