1
codehz 2021-05-09 12:25:56 +08:00 via Android 1
浏览器普遍做了特殊处理,没法通过一般正常途径拿到 visited 信息,目前有一种思路是做一个基于时间的侧信道攻击拿到颜色(不过也被堵的差不多了,以前的 mix-blend-mode 方法成功率不高
|
2
opengps 2021-05-09 12:31:30 +08:00 1
应该不行,标记访问过是浏览器的一个识别能力。
这个功能得看浏览器的历史访问地址里是否出现过,然而似乎没找到浏览器对外提供这个接口 |
3
rekulas 2021-05-09 12:37:36 +08:00 1
visited 属于个人隐私无法识别
除非配合访问的链接后端一起处理可以判断 |
4
woshinide300yuan OP 谢谢大家,已然放弃。
|
5
luob 2021-05-09 13:38:50 +08:00 1
document
.getElementsByClassName('l7cibp-2 mHtZd') .map(section => { section .getElementsByClassName('iasfms-4 hegAwd') .addEventListener('click', () => { section.setAttribute('data-text-visited', true) }) } .l7cibp-2.mHtZd[data-text-visited] { display: none; } 这样行吗? |
6
luob 2021-05-09 13:41:16 +08:00 1
打了半天空格怎么还是吞成了这个鬼样子……中间还有写错的,反正就是这么个意思凑活着看吧
|
7
lichdkimba 2021-05-09 13:58:25 +08:00 1
不然网站放个别的网站的地址就能检测到用户访问过没有了、、
|
8
love 2021-05-09 14:32:30 +08:00 1
为何要屏蔽 visited 链接?
有些站我要标识哪些是我看过的,我都是用 Stylus 给 visited 链接加特别的顔色 |
9
szharrydev 2021-05-09 20:15:52 +08:00 1
document.querySelectorAll('a.l7cibp-2 mHtZd:visited')
|
10
mostkia 2021-05-09 21:36:20 +08:00
可以换个折中的思路,访问的链接一定是被点击激活的,可以为每个链接绑定一个点击事件,首先阻止默认的跳转,然后设置一个 cookie,吧每次点击的 href 存储到 cookie,随后再放行,下次刷新回到本页面后,首先查找这个 cookie 数据,看看有哪些链接记录在案,随后遍历页面所有的锚点,匹配的直接隐屏蔽就行了。
|
11
jinliming2 2021-05-10 00:01:13 +08:00 1
@szharrydev :visited 伪类貌似是可以设置样式,但是无法被 querySelector 选择到的,computedStyle 里获取到的也是非 :visited 的样式。
|
12
woshinide300yuan OP @luob 哈哈哈哈哈……谢谢你
|
13
woshinide300yuan OP @mostkia 能理解,但不会,哈哈…… 谢谢您啦。
|
14
woshinide300yuan OP @love 有时候页面太多,太密集,想直接屏蔽掉,不想肉眼余光去费神挑选,眼压太大了。嘻嘻~
|
15
Mutoo 2021-05-10 07:09:28 +08:00
由于 :visited 涉及用户隐私(浏览记录),浏览器默认把所有链接认为是 unvisited,于是 querySelector(':visited') 不会起作用。
|
16
yunyuyuan 2021-05-10 09:16:17 +08:00
这属于属于隐私了,想想你进一个网站,上面有个 p**nhub 链接,是:visited,别人就知道你上过 p 站了。
|