不允许用户选择网页的一部分

时间:2013-08-16 08:04:22

标签: javascript html web

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

可以在其上放置透明图层,或使用onselectstart事件,但不是很好

6 个答案:

答案 0 :(得分: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"

答案 1 :(得分:1)

如果它仅仅是为了美学,因为你需要在Javascript中进行一些操作,这使得选择变得奇怪,你可以通过这个CSS属性禁用用户选择:

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

但是,用户始终可以通过其他方式选择内容:源代码,通过停用CSS,将页面保存在他的磁盘上等。您无法保护您的数据不被复制到Internet上。如果您只想保留它,请不要在网上分享:) See also this post,这解释了另一个问题的主题。

答案 2 :(得分:0)

如果您想保护信息,请不要将其放在互联网上 - 这很简单。

话虽如此,使文本更少机器可读的一种方法是将其变成图像。但仍然可以使用光学字符识别来提取文本。像验证码一样模糊文本可能会使这更难,但1.仍然不是不可能的(打破验证码是一个研究得很好的领域)和2.使用户体验更糟糕,特别是对视力受损的人。

答案 3 :(得分:0)

您可以使用JavaScript禁用网页右键,但不会阻止用户复制您网站上的内容。

还有其他复制内容的选项:

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

如果您在互联网上放置某些内容,则有可能将其复制。您可以阻止普通用户使用JavaScript和其他测量进行复制,但高级用户将以任何方式复制它。

答案 4 :(得分:0)

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

或者只是谷歌一些将文字渲染为图像的方法。

答案 5 :(得分:-1)

你做不到。别试试。

如果用户可以看到它,他们可以复制它(不知何故)。