V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
FlashEcho
V2EX  ›  程序员

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

  •  
  •   FlashEcho · Jan 12, 2025 · 2583 views
    This topic created in 472 days ago, the information mentioned may be changed or developed.

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

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

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

    变成

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

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

    4 replies    2025-01-12 17:55:14 +08:00
    StevenRCE0
        1
    StevenRCE0  
       Jan 12, 2025   ❤️ 1
    这个油猴插件代码很简洁,在这里面自定义匹配逻辑应该就可以了:

    ```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';
    });
    }
    }
    ```
    NoOneNoBody
        2
    NoOneNoBody  
       Jan 12, 2025   ❤️ 1
    不是“只有”,方法很多的,只不过你说的这个比较简单,基于浏览器自身的 history 数据库

    如果自己写脚本需要处理好获取 visited 的问题,就是需要一个历史库才能比较
    至于你说的同一页 url 不同,用正则处理一下就行了

    更复杂还有
    https://example.com/?abc=1&xyz=2...
    https://example.com/?xyz=2&abc=1...
    这些参数都一样,是同一页,但 url 不同

    就是看你的需求怎样,越复杂越难写,例如我的需求是跨浏览器的访问记录,就需要自建数据库了
    zzznow
        3
    zzznow  
       Jan 12, 2025   ❤️ 1
    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...
    importmeta
        4
    importmeta  
       Jan 12, 2025
    让 AI 写油猴脚本, 取 123456 这一部分存到本地存储里, LocalStorage 或者 IndexedDB, 进来油猴脚本判断 URL 是否是包含这部分, 包含就加点样式.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5595 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 07:14 · PVG 15:14 · LAX 00:14 · JFK 03:14
    ♥ Do have faith in what you're doing.