Google如何掩盖搜索结果页面上链接的真实网址?

时间:2013-11-20 08:32:45

标签: javascript url href google-search web-inspector

以下我测试了最新版本的Chrome和Firefox以及IE11,结果是一样的。

如果您执行Google搜索,然后将鼠标悬停在搜索结果页面上的链接上,则浏览器窗口左下角显示的链接与{{href的实际内容不同1}}元素 在我测试过的所有三个浏览器中,如果您检查元素检查器中的链接,您可以轻松地看到真实链接(即a),并且当检查器打开时,如果您将鼠标悬停在再次链接,然后您将在浏览器窗口的左下角看到真实的URL链接。

关于这种行为,我有两个问题?

  1. 虽然可能有点天真,但为什么Google会这样做呢?
  2. Google如何做到这一点?因为我在Chrome,Firefox和IE11中看到了这种行为,我认为这是一些JavaScript控制的行为(与一些浏览器控制的行为相反),但我从来没有听说过这种可能性在JavaScript中。如果在JavaScript中可以,你怎么做?
  3. 谢谢。

3 个答案:

答案 0 :(得分:9)

查看初始标记:

<a onmousedown="return rwt(this,'','','','3','AFQjCNF8xnW_qOvuZURbtcZUvB6zhKtRQw','35cXyZwuoZY8hBY1VfDr8Q','0CEAQFjAC','','',event)"
      href="http://en.wikipedia.org/wiki/How_Do_You_Do_It%3F">
   <em>How Do You Do It</em>? - Wikipedia, the free encyclopedia
</a>

最初,href属性显示“真实”网址。但是当您单击链接时,rwt函数会将属性值更改为

http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&ved=0CEAQFjAC&url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FHow_Do_You_Do_It%253F&ei=8nSMUqXtLKfe4QSzwIDADQ&usg=AFQjCNF8xnW_qOvuZURbtcZUvB6zhKtRQw&sig2=35cXyZwuoZY8hBY1VfDr8Q&bvm=bv.56643336,d.bGE

要回答您的问题:当您点击链接时,他们会使用onmousedown属性更改链接的href属性。 Barmar指出他们为什么这样做。

答案 1 :(得分:2)

结果页面中的链接指向Google服务器上的重定向页面。他们这样做,以便他们可以跟踪人们点击的链接。这比使用Javascript更可靠,因为它不要求用户启用Javascript。

您可以在网址的url参数中查看链接的最终目标。

答案 2 :(得分:1)

当用户点击href时, onmousedown事件处理程序被执行 在默认行为开始之前。 此时间范围用于更改锚标记的href。

查看其代码的简化版本:

<a 
  href="https://www.google.com/" 
  data-href='https://www.yahoo.com/' 
  onmousedown="this.href = this.dataset.href"
>Link</a>