大家是怎么标记已读页面的

chesha1 · 7 小时前 · 515 次点击

目前应该只有给 a:visited 附加 css 样式这一个好办法,我试了 chrome 拓展 Stylus这个油猴脚本,都能部分解决问题

但是这两个工具很依赖网站的原链接不变,比如说在本站,一个链接内容有更新之后,url 尾巴留下的记录也会变化,比如从

https://www.fshex.com/t/123456#reply10

变成

https://www.fshex.com/t/123456#reply11

就无法被 visited 记录了,大家有什么好的解决方法吗

举报· 515 次点击
登录 注册 站外分享
4 条回复  
importmeta 初学 2 小时前
让 AI 写油猴脚本, 取 123456 这一部分存到本地存储里, LocalStorage 或者 IndexedDB, 进来油猴脚本判断 URL 是否是包含这部分, 包含就加点样式.
zzznow 小成 5 小时前
function updateLinkStatus(link) { // 获取链接的 href 属性,并移除#及其后面的内容 const cleanHref = link.href.split('#')[0]; if (visitedLinks.has(cleanHref)) { link.style.color = '#88C6E5'; } else { link.addEventListener('click', () => { visitedLinks.add(cleanHref); GM_setValue('visitedLinks', Array.from(visitedLinks)); link.style.color = '#88C6E5'; }); } } 函数替换一下就 ok...
NoOneNoBody 小成 5 小时前
不是“只有”,方法很多的,只不过你说的这个比较简单,基于浏览器自身的 history 数据库 如果自己写脚本需要处理好获取 visited 的问题,就是需要一个历史库才能比较 至于你说的同一页 url 不同,用正则处理一下就行了 更复杂还有 https://example.com/?abc=1&xyz=2... https://example.com/?xyz=2&abc=1... 这些参数都一样,是同一页,但 url 不同 就是看你的需求怎样,越复杂越难写,例如我的需求是跨浏览器的访问记录,就需要自建数据库了
StevenRCE0 小成 6 小时前
这个油猴插件代码很简洁,在这里面自定义匹配逻辑应该就可以了: ```javascript function updateLinkStatus(link) { if (visitedLinks.has(link.href)) { link.style.color = '#88C6E5'; } else { link.addEventListener('click', () => { visitedLinks.add(link.href); GM_setValue('visitedLinks', Array.from(visitedLinks)); link.style.color = '#88C6E5'; }); } } ```
返回顶部