Javascript window.location.href vs单击锚定
单击以下各项之间有什么区别:Javascript window.location.href vs单击锚定,javascript,Javascript,单击以下各项之间有什么区别: <a href /> vs 调用window.location.href=… ?使用锚点可以指定目标属性,但使用window.location.href则不能。 通常,当用户希望将浏览器重定向到另一个位置时使用锚定,当使用javascript完成重定向时使用window.location.href。除了给出的其他答案,单击指定了href属性的元素将使浏览器导航到href中的URL,而不管是否启用了JavaScript。不要忘记,除了上述答案之外,还
<a href />
vs
调用window.location.href=…
?使用锚点可以指定目标属性,但使用window.location.href则不能。
通常,当用户希望将浏览器重定向到另一个位置时使用锚定,当使用javascript完成重定向时使用window.location.href。除了给出的其他答案,单击指定了
href
属性的
元素将使浏览器导航到href
中的URL,而不管是否启用了JavaScript。不要忘记,除了上述答案之外,还可以单击超链接(锚定标记)将触发该元素的onclick
处理程序(如果有的话),而Javascript版本显然不会,只会更改窗口的位置
如果要模拟单击,可以从Javascript手动调用onclick处理程序,但必须记住手动执行此操作。在这方面,您发布的代码片段可能会有所不同,这可能是导致任何行为差异的原因。如果可能,您应该在
window.location.href
上使用
- 状态栏中显示的目的地(非常重要!)
- 右键单击->复制链接位置
- 单击鼠标中键->打开新选项卡
- 等
- 使用
会破坏所有这些window.location
设置
window.location.href='thepage.html'
与调用:
window.open('thepage.html', '_self');
也就是说,目标被限制在同一个窗口中,因为该窗口是location属性所在的窗口。这与单击没有目标属性的链接的效果相同:
<a href="thepage.html">...</a>
这与单击具有该目标的链接具有相同的效果:
<a href="thepage.html" target="_blank">...</a>
document.referer包含服务器和客户端对包含用户单击以访问新页面的链接的页面url的引用-
脚本化的定位方法则不然。嗯,这是事实,但有点误导。在Javascript版本中,通过调用方法的对象隐式选择目标。window.location.href更改当前窗口,但mytarget.location.href将更改另一个窗口/框架(假设变量已正确声明)。无论如何,您不应该使用target属性。谁说的?无论如何,他要求不同意见,这是其中之一,所以继续投票,但这是正确的@德萨扎:你说得对,但他说的是窗户位置,不是别的什么。location@mck:是的,因此我在第一句话中用了软糖。严格地说,你是对的,但我对这个问题的解释是“javascript vs anchor clicking”;您提到的限制通常不适用于Javascript方法。(虽然我根本没有投票,但我认为你的答案不值得投否决票,只是澄清一下。:-)答案很好。我还将添加Shift+单击以在新窗口中打开,Ctrl+单击以在新选项卡中打开。我还将在该列表中添加可访问性,我不认为屏幕阅读器可以猜测JavaScript重定向,例如,当使用具有适当属性的HTML锚定时
<a href="thepage.html" target="_blank">...</a>
var w = window.open('about:blank', '_blank');
w.location.href = 'thepage.html';