如果URL正在重定向,我的浏览器如何知道我已经访问过页面?

亨里亚隆

Chrome,Safari,Firefox或其他浏览器如何知道您访问了重定向链接的目标URL?

我总是发现有趣的是,浏览器知道重定向URL所到达的URL并将访问的样式应用于该链接。

要了解我在问什么:

  • 在Google中输入随机关键字。
  • 在搜索结果中找到一个蓝色链接。不要点击它。
  • 复制目标网址(通常在链接下方以绿色显示)。
  • 打开一个新窗口/选项卡,然后将目标URL粘贴到地址栏中,然后单击Enter
  • 返回到Google搜索结果,链接立即被访问并变为紫色。

但是,该链接是指向某些google.com/url...页面的。Google是否在其标记中添加了一些内容,以告诉浏览器链接该链接的历史记录所使用的URL是什么?浏览器会以某种方式读取Google搜索结果吗?

丹尼斯

如果在悬停链接时注意状态栏,您会看到它最初指向“干净” URL。

仅当您单击链接(使用三个鼠标按钮中的任意一个)时,才会触发JavaScript事件,该事件会将链接的目标更改为Google的URL重定向。

要验证我的主张,只需右键单击任何紫色链接,然后关闭上下文菜单。除非您已经从Google的搜索结果中访问过该网站,否则您会看到它会更改颜色。1个

我不知道究竟谷歌如何注入重定向URL 2,但总的思路是这样的:

// define a function `f' that changes a link's clean URL to a redirection URL
var f = function () {
    // prepend `http://www.google.com/url?rct=j&url=' to the link's target
    this.href = 'http://www.google.com/url?rct=j&url=' + escape(this.href);
    // don't invoke this function anymore when clicking the link
    this.removeEventListener('click', f);
    // don't invoke this function anymore when right-clicking the link
    this.removeEventListener('contextmenu', f);
}

// save all <a> tags in an array `a'
var a = document.getElementsByTagName('a');

// for each <a> tag in the array `a'
for (var i = 0; i < a.length; i++) {
    // execute function `f' when clicking the link
    a[i].addEventListener('click', f);
    // execute function `f' when right-clicking the link
    a[i].addEventListener('contextmenu', f);
}

您可以尝试使用此jsFiddle来查看其工作原理。


1在Chromium 25(Ubuntu 12.10)和Chrome 26(Windows 7)上进行了测试

2最小化的JavaScript有点难以阅读。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以让我的浏览器在某些页面上自动重定向吗?

来自分类Dev

如果用户直接通过浏览器 url 访问受保护的路由,如何重定向到组件?

来自分类Dev

重定向到我的浏览器时 Internet Explorer 正在打开

来自分类Dev

如何重定向到特定浏览器上的页面?

来自分类Dev

我怎么知道页面是否在浏览器中运行?

来自分类Dev

我可以重定向到不同的路线,但如果我刷新浏览器,该路线将不起作用

来自分类Dev

如何在浏览器中跟踪URL重定向?

来自分类Dev

如果我只知道gs方案URI,如何使用浏览器从GCS检索文件?

来自分类Dev

如果我使用Tor,我的ISP是否知道我访问过哪些站点?

来自分类Dev

如何让浏览器知道用户已经查看了特定页面 - Ioinic

来自分类Dev

错误的URL重定向到所有浏览器的搜索引擎(在我的情况下为yahoo)

来自分类Dev

如何重定向到登录页面,但仅在浏览器导航到页面时

来自分类Dev

硬刷新浏览器页面,然后使用javascript重定向到url

来自分类Dev

是否可以在Google Chrome浏览器上运行Python GUI?如果是,请让我知道如何?

来自分类Dev

如果使用旧版IE浏览器,则将网站的所有页面重定向到页面-htaccess

来自分类Dev

浏览器控制台 - 如何在每个页面重定向中包含 javascript 代码?

来自分类Dev

计算通过谷歌搜索访问过的 chrome 浏览器历史记录中的 url

来自分类Dev

当我从网址重定向时,Android应用程序已在浏览器上打开

来自分类Dev

谷歌浏览器将我重定向到google.com.tr

来自分类Dev

所有浏览器都将我重定向到错误的站点

来自分类Dev

React上下文如何知道我正在引用react-router将我重定向到另一个URL

来自分类Dev

React上下文如何知道我正在引用react-router将我重定向到另一个URL

来自分类Dev

重定向 url 打开设备浏览器

来自分类Dev

如何阻止Google Chrome浏览器优先于以前访问过的网站进行搜索?

来自分类Dev

我如何知道我的浏览器是否支持SVG 2.0?

来自分类Dev

贝宝我没有登录页面,我已经重定向到贝宝控制器

来自分类Dev

如何在Prestashop中停止移动浏览器URL重定向

来自分类Dev

URL中的强制语言。如果URL没有语言,请根据浏览器语言进行重定向

来自分类Dev

Java如何告诉我已经访问过数组中的所有数字

Related 相关文章

  1. 1

    我可以让我的浏览器在某些页面上自动重定向吗?

  2. 2

    如果用户直接通过浏览器 url 访问受保护的路由,如何重定向到组件?

  3. 3

    重定向到我的浏览器时 Internet Explorer 正在打开

  4. 4

    如何重定向到特定浏览器上的页面?

  5. 5

    我怎么知道页面是否在浏览器中运行?

  6. 6

    我可以重定向到不同的路线,但如果我刷新浏览器,该路线将不起作用

  7. 7

    如何在浏览器中跟踪URL重定向?

  8. 8

    如果我只知道gs方案URI,如何使用浏览器从GCS检索文件?

  9. 9

    如果我使用Tor,我的ISP是否知道我访问过哪些站点?

  10. 10

    如何让浏览器知道用户已经查看了特定页面 - Ioinic

  11. 11

    错误的URL重定向到所有浏览器的搜索引擎(在我的情况下为yahoo)

  12. 12

    如何重定向到登录页面,但仅在浏览器导航到页面时

  13. 13

    硬刷新浏览器页面,然后使用javascript重定向到url

  14. 14

    是否可以在Google Chrome浏览器上运行Python GUI?如果是,请让我知道如何?

  15. 15

    如果使用旧版IE浏览器,则将网站的所有页面重定向到页面-htaccess

  16. 16

    浏览器控制台 - 如何在每个页面重定向中包含 javascript 代码?

  17. 17

    计算通过谷歌搜索访问过的 chrome 浏览器历史记录中的 url

  18. 18

    当我从网址重定向时,Android应用程序已在浏览器上打开

  19. 19

    谷歌浏览器将我重定向到google.com.tr

  20. 20

    所有浏览器都将我重定向到错误的站点

  21. 21

    React上下文如何知道我正在引用react-router将我重定向到另一个URL

  22. 22

    React上下文如何知道我正在引用react-router将我重定向到另一个URL

  23. 23

    重定向 url 打开设备浏览器

  24. 24

    如何阻止Google Chrome浏览器优先于以前访问过的网站进行搜索?

  25. 25

    我如何知道我的浏览器是否支持SVG 2.0?

  26. 26

    贝宝我没有登录页面,我已经重定向到贝宝控制器

  27. 27

    如何在Prestashop中停止移动浏览器URL重定向

  28. 28

    URL中的强制语言。如果URL没有语言,请根据浏览器语言进行重定向

  29. 29

    Java如何告诉我已经访问过数组中的所有数字

热门标签

归档