Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌如何屏蔽搜索结果页面上链接的真实URL?_Javascript_Url_Href_Google Search_Web Inspector - Fatal编程技术网

Javascript 谷歌如何屏蔽搜索结果页面上链接的真实URL?

Javascript 谷歌如何屏蔽搜索结果页面上链接的真实URL?,javascript,url,href,google-search,web-inspector,Javascript,Url,Href,Google Search,Web Inspector,下面是我在最新版本的Chrome、Firefox和IE11上测试的结果,结果是一样的 如果您进行谷歌搜索,然后将鼠标悬停在搜索结果页面上的链接上,则浏览器窗口左下角显示的链接与a元素的实际href不同。 在我测试过的所有三种浏览器中,如果你在element inspector中检查链接,你可以很容易地看到真正的链接(指向www.google.com),当inspector打开时,如果你再次将鼠标悬停在链接上,你就会在浏览器窗口的左下角看到真正的URL链接 关于这种行为我有两个问题 也许有点天真,

下面是我在最新版本的Chrome、Firefox和IE11上测试的结果,结果是一样的

如果您进行谷歌搜索,然后将鼠标悬停在搜索结果页面上的链接上,则浏览器窗口左下角显示的链接与
a
元素的实际
href
不同。
在我测试过的所有三种浏览器中,如果你在element inspector中检查链接,你可以很容易地看到真正的链接(指向
www.google.com
),当inspector打开时,如果你再次将鼠标悬停在链接上,你就会在浏览器窗口的左下角看到真正的URL链接

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

  • 也许有点天真,谷歌为什么要这么做
  • 谷歌是如何做到这一点的?因为我在Chrome、Firefox和IE11中看到了这种行为,所以我认为这是一些JavaScript控制的行为(与某些浏览器控制的行为相反),但我从来没有听说过JavaScript中可能出现这种情况。如果可以在JavaScript中实现,您将如何实现

  • 谢谢。

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


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

    查看初始标记:

    <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>
    

    回答您的问题:当您单击链接时,他们使用
    onmousedown
    属性更改链接的
    href
    属性。指出他们这样做的原因。

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

    查看他们代码的简化版本:


    当我在inspector打开的情况下将鼠标悬停在链接上时,我仍然会在浏览器的角落看到
    www.google.com
    URL。+1表示Barmar。我看到了同样的行为。是的,你们都是对的。正如我在PoByPobel的回答中所评论的那样,起初我没有想到右键单击链接打开inspect会导致
    onmousedown
    事件发生,并触发
    rwt
    功能。感谢您指出这一点。使用跟踪链接不需要JavaScript,但您还没有解释它们如何使最终目标显示在状态栏中。@ruakh即使不能解决完整问题,也可以给出部分答案——请参阅我的问题@Barmar,非常感谢您的解释。不过,对于你的回答,我还有一个后续问题。你提到谷歌做的是为了跟踪,这是一种可靠的技术,因为有些用户没有启用JavaScript,但是如果用户禁用了JavaScript,那么链接的
    href
    将永远不会更改,它们也永远不会被定向到谷歌服务器,对吗?相反,它们将被直接带到实际的URI,对吗?我只是想确保我没有误解任何事情。谢谢。@HartleySan理论上是的。但是谷歌不知怎的注意到你禁用了JavaScript,并且(神奇地)向你发送了不同的标记,其中所有
    href
    都包含谷歌重定向URL。他们可能使用
    来检测。啊哈,我没有看到这一点,因为我右键单击链接使用
    检查元素
    ,这改变了链接!我也做了同样的事。但是当我看到
    onmousedown
    属性后,我发现Google已经更改了
    href
    值。所以我尝试了一个我还没有点击的链接;)@波比博莱克,非常感谢你的回答。像Barmar一样,我没有考虑到当我右键点击打开检查的链接时,我会导致鼠标按下事件发生。谢谢你指出这一点。现在,这几乎都是有道理的。不过,我还有一个相关的后续问题,我将其作为对巴尔马回答的评论发布。谢谢。如果在结果页面上禁用javascript,结果从一开始就使用跟踪url(而不是原始url)
    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