window.location.href 和 <a href></a> 有什么区别?

What's the differences between window.location.href and <a href></a>?

我刚刚阅读了一些关于 window.location 属性 和方法的概念。 我知道

1. window.location.href = "http://google.com"
2. window.location.assign("http://google.com")
3. window.location.replace("http://google.com")

都可以将我们的页面重定向到目标url,唯一不同的是window.location.replace不记录历史,所以我们不能直接回到上一页。

现在我想知道,window.location.href<a href="http://google.com">Google</a>有什么区别,<a>标签也记录了历史。 以及我们分别在什么情况下使用它们?

区别在于它们可能的使用方式(呃,请耐心等待。)

设置 window.location.href 是一种以编程方式设置 URL 的方法。例如,window.location.href = 'https://www.google.com' 会将用户导航到 Google 的搜索页面。您的用户无法使用这些知识,除非他们打开开发人员控制台。

使用 <a href="https://www.google.com">Google</a> 的锚标记将显示用户可以单击的超链接,将他们导航到 Google 的搜索页面。这个标签也更有可能被屏幕解释 reader 比带有 onclick 的按钮更合适,通过在 [=24] 中手动设置 window.location.href 将它们导航到 Google =].

我认为主要区别在于幕后发生的事情,但从表面上看,它们几乎产生了相同的效果。

window.location.href 只能由 JavaScript 或在 JS 上下文中触发。而 <a> 标签定义了 HTML 中的超链接。这实际上取决于您希望如何触发这个新页面。你可以有一个用户可以 click/tap 的超链接,或者你可以通过某些由特定操作触发的 JS 函数来触发页面加载。

更具体地说,a 标记在网页中很常见,因为浏览器可以理解它并可以对其应用 CSS 样式以使其看起来更好看。至于 window.location.href,它没有 UI 方面,它只是一行 JS 代码,您可以触发它来 (1) 获取当前网页 URL 或 (2) 设置将用户重定向到其他 URLs.

的值