鼠标悬停在它上面

时间:2012-12-04 22:12:52

标签: javascript jquery google-chrome google-chrome-extension

我开发了Chrome扩展程序,当鼠标悬停在这个单词上时,我需要得到任何网页。 我不想把所有的单词都放到特定的容器中,然后通过id获取它。 例如,如果我有<p>The weather is very good today</p>我想将鼠标放在单词“very”上并在我的js中获取它(例如,alert('very'))。

1 个答案:

答案 0 :(得分:3)

我想为此功能向您展示 proof of concept 。这是非常天真和弱,但表明它可以与适当的正则表达式。基本上,将绿色边框div悬停以查看结果。

使用这种方法,每个段落都分为带有正则表达式的跨区块。更强大的正则表达式,当然是更好的结果。然后,onmousemove冒泡,由跨度触发。阅读跨度的内容是件小事。

这种方法非常具有侵入性,通过修改你可能不想触摸的DOM结构。它虽然在普通的JS中工作。更先进(仍然简单)的方法如下:

  1. 请勿触摸任何段落。
  2. 观察onmousemove以找到鼠标下的段落。
  3. 保存clientXclientY
  4. 复制段落,使其透明并position: absolute
  5. 副本上执行spanify()事。
  6. 使用document.elementFromPoint查找正在悬停的跨度。使用保存的(3.)clientXclientY移动副本的位置(左,上)。
  7. 你有跨度。你已经有了它的内容。
  8. 从DOM中删除段落副本。
  9. 这个hack仍然适用于普通的JS。快乐的编码! ;)