Javascript/jQuery 如何判断页面已被访问过?
高洛峰
高洛峰 2016-11-21 10:16:09
0
5
1912

一个奇葩的需求!

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

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

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

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

补充说明2:


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(5)
三叔

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

いいねを押す +0
学霸

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

いいねを押す +0
三叔

有点奇怪的需求

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

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


いいねを押す +0
学霸

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

いいねを押す +0
三叔

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

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


いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート