1

我有一个名称列表,它可以单击以显示每个名称的详细信息。但我不希望选择和复制该列表的名称。它只是一个保护。怎么办?

可以在上面放一个透明层,或者使用onselectstart事件,但不好

4

6 回答 6

1

有了这个 CSS

.unselectable {
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
}

而这个 HTML

<body>
  <p class="unselectable">The user is not able to select this text in Firefox, Chrome, Safari and IE.</p>

</body>

无法选择该段落。

对于复制和粘贴文本无用的按钮和事物来说,这很好。

这不能被认为是安全的,因为用户显然可以禁用 CSS 或只查看源代码。(或使用 wget/curl/raw 套接字获取内容)。

浏览器支持相当不错:http ://caniuse.com/user-select-none

IE10 及更高版本(当然 IE10 现在是最流行的 IE 版本),+ 所有其他浏览器。

如果由于某种原因您支持具有如此琐碎功能的旧版本的 IE,您可以添加unselectable="on"该元素。

于 2013-08-16T08:11:53.940 回答
1

如果只是为了美观,因为您需要在 Javascript 中进行一些操作,这会使选择变得奇怪,您可以通过此 CSS 属性禁用用户选择:

.block {
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
}

但是,用户将始终能够通过其他方式选择内容:源代码、停用 CSS、将页面保存在他的磁盘上等。您无法保护您的数据不被复制到 Internet。如果您只想为自己保留它,请不要在网络上分享它:)另请参阅这篇文章,它解释了另一个问题的主题。

于 2013-08-16T08:14:55.660 回答
0

当你想保护信息时,不要把它放在互联网上——就这么简单。

话虽如此,降低文本机器可读性的一种方法是将其转换为图像。但是仍然可以使用光学字符识别来提取文本。像在验证码中一样混淆文本可能会使这更难,但 1. 仍然不是不可能(破解验证码是一个经过充分研究的领域)和 2. 使用户体验更差,尤其是对于视力受损的人。

于 2013-08-16T08:11:41.840 回答
0

好吧,您可以使用 JavaScript 禁用右键单击页面,但它不会阻止用户从您的网站复制内容。

还有其他选项可以复制内容:

  • 打印屏幕或任何其他截图工具
  • 保存页面
  • 使用 Microsoft One Note 打印屏幕并提取文本。
  • 查看页面源并复制

如果您将某些内容放到 Internet 上,就有可能被复制。您可以阻止普通用户使用 JavaScript 和其他度量进行复制,但高级用户会以任何方式复制它。

于 2013-08-16T08:13:44.563 回答
0

您可以尝试将所有文​​本渲染为图像,没有人可以使用打印屏幕阻止它们,但至少不会有复制。见 imagettftext ( http://php.net/manual/en/function.imagettftext.php ) 或 http://sgss.co/previous/experiments/phpfontimagegenerator2/

或者只是谷歌一些将文本呈现为图像的更多方法。

于 2013-08-16T08:25:35.710 回答
-1

你不能。不要尝试。

如果用户可以看到它,他们可以(以某种方式)复制它。

于 2013-08-16T08:05:51.397 回答