3

我知道我们可以使用 javascript 来实现这一点,但在网络浏览器中禁用 javascript,用户可以轻松复制文本。有什么办法可以使用 CSS 吗?

4

8 回答 8

33

如果您不希望有人复制您的文本,请不要将其放在网络上。

网络的源代码是可见的,可以免费阅读和复制。

即使您使用了所有 CSS、JavaScript 或想象的技巧,也没有什么能阻止用户手动阅读您的文本并将其复制到不同的文档/位置。

您可能希望做的最好的事情就是惹恼人们以阻止他们复制您的文本。但就像所有其他事情一样,坚持不懈的人将能够成功。

这就是我们人类所做的。

于 2012-06-07T11:02:19.170 回答
12
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
于 2012-06-07T12:50:28.500 回答
8

没有办法阻止有足够决心的人复制您网站的文本。即使有一些假设的完美方法可以阻止复制和粘贴或下载仅查看而不保存的页面(没有),如果他们真的想要,有足够时间和动力的人可以手动输入文本它。

网络被设计为开放的。这也是一件好事。从 1991 年创作的网页中提取数据并不是特别困难。尝试在不使用 Microsoft 产品的情况下对同一时代的 Microsoft Word 文档执行相同的操作。

于 2012-06-07T13:58:36.590 回答
5

类似的问题在这里有一些很好的答案,所以我不会覆盖旧的领域

无论您做什么,用户仍然可以查看页面的源代码并从那里复制任何内容。完全防止它的唯一方法是根本不显示任何文本(例如显示图像,或动态创建不利于可访问性的图像)

于 2012-06-07T10:53:06.883 回答
2

网络是开源的,免费阅读,即使使用 java 脚本也无法警告人们复制内容,但您可以通过 CSS 发出警告。像下面这样的把戏。

试试这个...

p
{
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
于 2012-06-07T10:57:25.383 回答
2
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

这是防止用户选择文本的好方法。这不是一个糟糕的答案。例如,如果您在使用 Canvas (HTML5) 并允许用户在此画布上拖放内容的网站上工作;如果用户要离开画布定义的区域,文本将开始被“选中”。这是丑陋的。因此,出于明显的人体工程学原因,这是一个不错的选择。

于 2013-05-16T14:35:58.930 回答
0

您的客户和许多其他人正在寻找的东西是不可能的,因为他们不了解网页是如何传输的,但是,这些客户可能会对让用户“难以”复制文本感到满意。在其他用例中,可以标记为不可复制的文本将是一个有用的功能,例如,您希望用户可以轻松复制某些文本,而无需复制无法复制的内容,例如元数据,例如时间戳。

至于前面的答案,他们似乎表明使用 css 执行此操作的方法是使用user-selectcss 属性,但是,这可以防止文本看起来被选中,但它仍会复制到剪贴板。但是,这是您单独使用 css 可以获得的最佳效果,并且可能会阻止某些用户复制您的内容。

Javascript 将更进一步,并且在不使用开发人员工具的情况下很难从浏览器窗口复制。

于 2013-04-16T20:36:21.350 回答
0
-webkit-touch-callout: none; ;
-webkit-user-select: none;
-khtml-user-select: none; 
-moz-user-select: none;
-ms-user-select: none; 
user-select: none;

文本不会被选中,但是,我们可以在某些情况下复制文本。

于 2017-05-29T08:08:52.700 回答