Rumah  >  Soal Jawab  >  teks badan

Javascript/jQuery 如何判断页面已被访问过?

一个奇葩的需求!

补充说明2:其实只是想找一个确定“页面”或“超链接”的“已访问”状态,而不借助任何的存储!

如何在不读写LocalStorage、IndexedDB、Cookie之类的情况下,如何判断一个网页在打开时是已被访问过?

或如何得知一个超链接的已访问状态?

补充说明:我并不是要设置其CSS样式!

补充说明2:


高洛峰高洛峰2889 hari yang lalu1861

membalas semua(5)saya akan balas

  • 三叔

    三叔2016-11-21 10:17:35

    利用 a:visited css 访问过的链接样式区分。

    <style type="text/css">
    .nealnote:link {
      color: blue;
    }
    .nealnote:visited {
      color: red;
    }
    .nealnote:hover {
      color: blue;
    }
    .nealnote:actve {
      color: blue;
    }
    </style>
    <a class="nealnote" href="https://segmentfault.com/q/1010000007544678">https://segmentfault.com/q/1010000007544678</a>
    <a class="nealnote" href="https://www.baidu.com/?q=visited">https://www.baidu.com/?q=visited</a>

    访问过的链接的color是 red,未访问过的链接color是 blue

    balas
    0
  • 欧阳克

    欧阳克2016-11-21 10:17:13

    如果拦截所有的url请求,并获取保存url和访问用户(或ip),如果存在了当前ip对该url的数据,即视为访问过。也许可行。。

    balas
    0
  • 三叔

    三叔2016-11-21 10:17:05

    有点奇怪的需求

    这样看看能否符合你的需求,在你的页面中隐藏一个极小的图片,然后JS判断这个图片是否在缓存中,在的话就代表已被访问,不在自然就没有被访问了。

    var url = "./a.png";
    var img = new Image();
    img.src = url;
    if(img.complete || img.width) {
        console.log('已经访问过!!!')
    }


    balas
    0
  • 欧阳克

    欧阳克2016-11-21 10:16:40

    当然是用localStorage cookie 这些存储机制了, 你要是说不用这些,那不是扯蛋吗。

    balas
    0
  • 三叔

    三叔2016-11-21 10:16:19

    这种需求还真没遇见过,不过你提到了用js来处理,给你一个思路,给url添加hash。

    如果你是要在浏览器地址栏中输入url,然后想知道是否之前就访问过,不记录状态,我想应该是不能实现的,如果有方案,我也可以了解一下。


    balas
    0
  • Batalbalas