用 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。