点击之间有什么区别:
<a href />
VS
致电window.location.href = ...
答案 0 :(得分:40)
出于各种原因,您应尽可能使用<a href="foo.html">
而不是window.location.href
。
window.location
打破所有这些答案 1 :(得分:5)
设置window.location.href = 'thepage.html'
与调用相同:
window.open('thepage.html', '_self');
即。目标仅限于同一窗口,因为它是location属性的位置。这与单击没有目标属性的链接具有相同的效果:
<a href="thepage.html">...</a>
您可以使用open方法来指定其他目标,例如新窗口:
window.open('thepage.html', '_blank');
这与单击具有该目标的链接具有相同的效果:
<a href="thepage.html" target="_blank">...</a>
您还可以使用open方法打开新窗口。返回值是对窗口的引用,因此您可以使用它来设置该窗口的位置而不是当前窗口:
var w = window.open('about:blank', '_blank');
w.location.href = 'thepage.html';
答案 2 :(得分:1)
不要忘记,除了上述答案之外,点击超链接(锚标记)将触发该元素的onclick
处理程序(如果有的话),而Javascript版本显然没有,只是更改了窗口的位置。
如果您想模拟点击,可以从Javascript手动调用onclick处理程序,但您必须记住手动执行此操作。您发布的片段在这方面会有所不同,这可能是导致任何行为差异的原因。
答案 3 :(得分:0)
使用锚点你可以指定目标属性,但是使用window.location.href你不能。 通常,当用户想要将浏览器重定向到另一个位置时使用锚点,当使用javascript完成重定向时使用window.location.href。
答案 4 :(得分:0)
除了给出的其他答案之外,点击<a>
元素且指定了href
属性将导致浏览器导航到href
中的网址,无论是否JavaScript启用与否。
答案 5 :(得分:0)
document.referrer包含服务器和客户端对页面网址的引用,该网页包含用户点击进入新网页的链接 - 脚本化的定位方法没有。