How do Google and Yahoo replace the URL in the browser status bar?

后端 未结 6 1801
青春惊慌失措
青春惊慌失措 2021-01-01 15:31

On the Google and Yahoo search pages, the URLs of the 10 search result links actually point to google.com or yahoo.com. The URLs have extra arguments that allow google.com

6条回答
  •  长情又很酷
    2021-01-01 15:59

    Google has onMouseDown handlers on every link that change the link from the original source pointing towards Google redirect. So onmousedown replaces the link and when onClick appears (shortly after the onmousedown) the link is pointing already to somewhere else than the original direction.

    Step 1. User clicks on a link (mouse button is down)

    Step 2. onMouseDown event triggers

    Step 3. link target (a href value) is altered

    Step 4. Mouse button comes up

    Step 5. onClick event triggers

    Step 6. Browser sees that a link was clicked and forwards the user to the desired destination (set by an already altered href value)

    Step 7. Browser opens a Google redirect page and this forwards the user to the original destination

    Updated: Google used to track clicks on an onmousedown event only and didn't alter the link destination. When a mouse button was pressed on a link an image loading request was made towards google servers which counted the click (onmousedown => new Image("coogle.counter.server.com/link=www.pressed.com")) but I guess it was misused or it wasn't reliable enough that they decided to use the current link altering technique.

提交回复
热议问题