【问题标题】:Select text occurrences in dom provided by input text选择输入文本提供的 dom 中出现的文本
【发布时间】:2021-10-21 00:20:29
【问题描述】:

我正在尝试在我的nwjs 应用程序上构建一些搜索引擎,由于多种原因,我不能使用像Mark.js 这样的API,因为它会导致dom 更改将一些HTML 标记包裹在我想要查找的单词周围。这就是为什么我想使用文本选择来表示突出显示但我不知道如何。

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: javascript reactjs selection nwjs


【解决方案1】:

听起来你想要这个:

它还会添加 dom 包装器,但完成后会移除它们。

我能想到的唯一其他方法是:

  1. 检测页面上文本的 x,y 坐标
    • 祝你好运。基于布局和浏览器宽度的文本重排。如果文本未包含在元素中,我不确定如何获取它的坐标或大小(边界框/矩形)
  2. 在其上方使用mix-blend-mode: darken 创建一个绝对定位元素
    • 这适用于背景比突出显示亮的深色文本。就像黑色背景上的白色文本带有黄色突出显示一样。但如果它是黑色背景上的白色文本,则需要mix-blend-mode: lighten。另外,祝你好运,确定背景颜色和文本,因为它们基本上可以存储在 DOM 中的任何位置。

你最好只使用那个库,或者找到一种不同的方法来解决或定义你的问题空间。

【讨论】:

  • 我之前尝试过这个解决方案,但在我看来,实现起来真的很糟糕。我找到了这个解决方案,我想它有效! bityli.com/u89WmD。但非常感谢您抽出宝贵时间,Jared!
猜你喜欢
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-22
  • 2017-06-30
相关资源
最近更新 更多