window.location.href vs点击一个Anchor

LB.*_*LB. 18 javascript

点击之间有什么区别:

<a href />
Run Code Online (Sandbox Code Playgroud)

调用 window.location.href = ...

nic*_*ckf 41

只要有可能,你应该使用<a href="foo.html">window.location.href,对于一些很好的理由.

  1. 如果您禁用了JavaScript,则所有链接都不起作用.
  2. 蜘蛛,例如Google Bot,不解释javascript,因此他们不会关注您的任何链接.
  3. 它打破了互联网.不,真的,虽然-万维网的Web建立页面之间发现联系的非常基础上.隐藏这些与非标准错误链接的联系违背了这个前提.
  4. 它会带来糟糕的用户体验:用户希望当他们将鼠标悬停在链接上时,他们可以访问某些信息:
    • 状态栏中显示的目的地(非常重要!)
    • 右键单击 - >复制链接位置
    • 中键单击 - >打开新选项卡
    • 等等
    • 使用window.location打破所有这些
  5. 这更容易!


Guf*_*ffa 5

设置window.location.href = 'thepage.html'与调用相同:

window.open('thepage.html', '_self');
Run Code Online (Sandbox Code Playgroud)

即目标仅限于同一窗口,因为它是location属性的位置.这与单击没有目标属性的链接具有相同的效果:

<a href="thepage.html">...</a>
Run Code Online (Sandbox Code Playgroud)

您可以使用open方法来指定不同的目标,例如新窗口:

window.open('thepage.html', '_blank');
Run Code Online (Sandbox Code Playgroud)

这与单击具有该目标的链接具有相同的效果:

<a href="thepage.html" target="_blank">...</a>
Run Code Online (Sandbox Code Playgroud)

您还可以使用open方法打开一个新窗口.返回值是对窗口的引用,因此您可以使用它来设置该窗口的位置而不是当前窗口:

var w = window.open('about:blank', '_blank');
w.location.href = 'thepage.html';
Run Code Online (Sandbox Code Playgroud)