我刚刚读了一些关于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。
区别在于它们可能被使用的方式(duh,请听我说。)
设置 window.location.href
是一种程序化设置URL的方式。例如: window.location.href = 'https://www.google.com'
会将用户导航到Google的搜索页面。你的用户没有办法利用这些知识,除非他们打开开发者控制台。
使用一个锚标签 <a href="https://www.google.com">Google</a>
将显示一个超链接,用户可以点击,将其导航到Google的搜索页面。这个标签也更有可能被屏幕阅读器解读为比一个带着 onclick
将他们导航到谷歌,通过设置 window.location.href
在Javascript中手动操作。