【发布时间】:2010-12-12 15:37:09
【问题描述】:
点击有什么区别:
<a href />
对比
致电window.location.href = ...
?
【问题讨论】:
标签: javascript
点击有什么区别:
<a href />
对比
致电window.location.href = ...
?
【问题讨论】:
标签: javascript
您应该尽可能使用<a href="foo.html"> 而不是window.location.href,原因有很多。
window.location 会破坏所有这些【讨论】:
设置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';
【讨论】:
不要忘记,除了上述答案之外,单击超链接(锚标记)将触发该元素的 onclick 处理程序(如果有),而 Javascript 版本显然不会,只会更改窗口的位置.
如果您想模拟点击,可以从 Javascript 手动调用 onclick 处理程序,但您必须记住手动执行此操作。您发布的 sn-ps 在这方面会有所不同,这可能是导致任何行为差异的原因。
【讨论】:
使用锚点可以指定目标属性,但使用 window.location.href 则不能。 通常当用户想要将浏览器重定向到另一个位置时使用锚点,当使用 javascript 完成重定向时使用 window.location.href。
【讨论】:
除了给出的其他答案之外,单击指定了href 属性的<a> 元素将导致浏览器导航到href 中的URL,无论是否启用了JavaScript。
【讨论】:
document.referrer 包含服务器和客户端对包含用户单击以进入新页面的链接的页面的 url 的引用- 脚本化定位方法没有。
【讨论】: