我刚刚读了一些关于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
只能由JavaScript触发,或者在JS上下文中触发。而<a>
标记定义 HTML 中的超链接。这实际上取决于您希望如何触发此新页面。您可以有一个用户可以单击/点击的超链接,也可以通过某些操作触发的某些 JS 函数触发页面加载。
更具体地说,a
标签在网页中很常见,因为浏览器可以理解它,并且可以将 CSS 样式应用于它以使其看起来更好。至于window.location.href
,它没有UI方面,它只是一行JS代码,您可以触发它(1)获取当前网页URL或(2)为其设置值以将用户重定向到其他一些URL。
区别在于它们可能被如何使用(嘟嘟,请耐心等待。
设置window.location.href
是以编程方式设置 URL 的一种方法。例如,window.location.href = 'https://www.google.com'
会将用户导航到Google的搜索页面。您的用户无法利用这些知识,除非他们打开开发人员控制台。
使用<a href="https://www.google.com">Google</a>
锚标记将显示一个超链接,用户可以单击该超链接,将他们导航到 Google 的搜索页面。这个标签也更有可能被屏幕阅读器解释,而不是带有onclick
的按钮,通过在 Javascript 中手动设置window.location.href
将它们导航到 Google。