• 请不要在回答技术问题时复制粘贴 AI 生成的内容
firhome
V2EX  ›  程序员

前端批量高亮页面上某些关键字 有什么好的插件吗?

  •  
  •   firhome · May 14, 2020 · 1906 views
    This topic created in 2219 days ago, the information mentioned may be changed or developed.
    页面加载完成,需要高亮一些文案。

    目前想的是获取 html,然后直接 replace 。 但是觉得性能不太好(批量获取,换好后,再批量塞回去)。

    我想的是理想的解决方案是 得到需要高亮的文字,然后获取最近的标签,通过获取标签 然后 高亮标签内的文字。(需要写正则)

    不知道 有没有其它成熟的插件呢?
    5 replies    2020-05-14 17:05:44 +08:00
    luckyboy6
        1
    luckyboy6  
       May 14, 2020
    [].forEach.call($$("*"),function(a){
    a.style.outline = "1px solid #" + (~~(Math.random()*(1<<24))).toString(16)
    })
    在浏览器里面执行类似这种的代码?
    rioshikelong121
        2
    rioshikelong121  
       May 14, 2020
    我一直在用 diigo 做网页标注 感觉和你需求有点类似。 要不你也下一个参考一下他们的做法 当然软件貌似是闭源的 你可以从 html 上去推测。
    duan602728596
        3
    duan602728596  
       May 14, 2020 via iPhone   ❤️ 1
    因为文字可能被不同的标签隔开,比如
    <div>a<b>b</b>c</div>
    这种,所以我是用 parse5 把 html 拆成 ast 树,
    取每个节点去掉标签后的字符串,
    计算需要高亮的字符串的位置,
    把字符串打上标记,然后对有标记的进行统一处理
    dinjufen
        4
    dinjufen  
       May 14, 2020
    highlightjs
    MiBAO
        5
    MiBAO  
       May 14, 2020
    @dinjufen 不仔细去看 我还以为你乱发了一串字母
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3743 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:00 · PVG 13:00 · LAX 22:00 · JFK 01:00
    ♥ Do have faith in what you're doing.