【问题标题】:What text can be copied but not searched for?哪些文本可以复制但不能搜索?
【发布时间】:2011-08-31 04:22:35
【问题描述】:

我之前使用图像的 alt 属性来生成可以到达剪贴板的文本:

style属性可以隐藏文字,但是隐藏文字还是存在的,可以通过indexOf、control-F等找到。

是否有另一种方法可以在复制所选内容时包含文本?

【问题讨论】:

  • 这个问题是关于文本的可搜索性,而不是可见性。
  • 我不明白如何复制文本但不能搜索。如果你可以复制它,它就存在于 DOM 中。搜索解析 DOM。
  • @Nick:因为元素的属性不在 DOM 上?如果我知道得更好,我就不会问了。我所知道的是,当复制周围的文本时,剪贴板用于抓取具有未定义 src 值的图像的 alt 属性。
  • 我认为我们需要您试图隐藏的内容,display: none; 在跨区文本上仍然可以正常工作,即隐藏的跨区文本被复制和粘贴......以及跨区中的文本没有通过搜索页面找到,这不是你所追求的。你必须使用图像吗?

标签: javascript html css image text


【解决方案1】:

注意:我昨天发布了这个答案,但删除了它,因为我认为我没有正确理解你的问题。但是鉴于您发布的其他信息,我实际上认为这可能是您正在寻找的。 (如果不是你要找的,请告诉我,我会再次删除)

类似这样的:

This is some <span style='display:inline-block; width:0px; overflow:hidden; white-space:nowrap;'>copy me!</span>random text.

应该在浏览器上显示This is some random text.,但是当复制并粘贴到记事本中时,它应该给你This is some copy me!random text.

【讨论】:

  • @pimvdb - 嗯,你是对的。它可以在 Firefox、Opera 和 IE 中运行,但我没有在 Chrome 或 Safari 中测试过。
  • 如果这确实是 OP 想要的解决方案(我仍然不明白这个问题;)) - 那么 - span {position: absolute; clip: rect(1px 1px 1px 1px); clip: rect (1px, 1px, 1px, 1px);} - 在 Chrome 中也可以工作,这两个版本都不会使文本“无法搜索” “虽然所以我不确定这是否在正在寻找的答案中:) - display: none 在我的跨度上工作正常
  • 感谢您的输入,但我仍然可以使用 control-F 找到它。
【解决方案2】:

看来 alt 属性是这里的乐器:

<img alt="Can't find me!"/>

上面的元素应该显示替代文本,但是 control-F 和 indexOf() 方法将无法找到它。

我不需要隐藏此文本,只是 indexOf() 无法使用,但提及 style="display:none;" 也无妨将阻止此操作(文本不会到达剪贴板)。如果您需要隐藏文本,请改用 style="font-size:0;",正如我之前在 How can I write text that the clipboard sees but isn't visible? 中发现的那样

【讨论】:

  • 我实际上并不能在 Chrome 上运行它:jsfiddle.net/r7Sza。如果我复制整个,我得到的只是aa
  • 是的,这似乎只适用于 Firefox,因此欢迎使用替代方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
相关资源
最近更新 更多