【问题标题】:How to copy only visible text如何仅复制可见文本
【发布时间】:2013-04-23 13:40:29
【问题描述】:

如果文本不显示,当用户使用 ctrl-a 选择文本或全选时,是否有任何方法可以说服浏览器复制仅在屏幕上可见的文本。在下面的示例中,我不想为绝对定位的 div 复制文本。

<html>
  <body>
    <div style="position:absolute;top:30;left:-300">This should not be copied</div>
    <div>Only this should be copied</div>
  </body>
</html>

更多信息:

  • 理想情况下,我正在寻找 webkit/gtk 的解决方案,但这也适用于 firefox/chrome。两种浏览器都表现出相同的行为。
  • 我无法控制页面的显示。页面显示在 webkit 窗口中,用于尝试分析页面内容的自动化工具。部分算法通过全选/复制查看可用的文本
  • 我可以访问完整的 API webkit/gtk 公开。

【问题讨论】:

  • 我尝试在 ubuntu 上打印到 chrome 的 pdf 功能。生成的 PDF 不显示定位的 div。所以有一些东西可以确切地知道渲染的是什么,是可用的。只需要弄清楚 API 的哪一部分支持它。

标签: css google-chrome firefox webkit


【解决方案1】:

为什么不直接做display: none; 而不是把它移到左边呢?

<html>
  <body>
    <div style="display: none;">This should not be copied</div>
    <div>Only this should be copied</div>
  </body>
</html>

我认为您没有理由需要将其移出屏幕。

【讨论】:

  • 我认为您错过了项目符号 2。我不控制页面。我只有一个显示页面的 url 和 webkit 窗口
  • 我确实错过了。我很抱歉。
  • 你能使用javascript/jquery吗?您可以使用它来修改该 div 的样式属性。
  • Javascript,是的,jquery,我假设没有。由于我不控制页面,我不想为我不控制的页面注入完整的库。但后来我猜测,如果它可以在 js 中完成,它可能可以使用 webkit API 完成。问题是我应该怎么做才能将选择限制为仅显示的元素。
【解决方案2】:

用户可以随时使用 firebug 复制他们想要的任何内容。

【讨论】:

  • 我不确定这与我的问题有何关系。我不会阻止用户复制/粘贴。如问题所述,我有一个显示页面的工具。我想获取屏幕上可见的文本——实际上是用户在屏幕上看到的。
猜你喜欢
  • 1970-01-01
  • 2016-11-30
  • 1970-01-01
  • 1970-01-01
  • 2023-02-14
  • 2019-04-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
相关资源
最近更新 更多