如何阻止用户从我的网页复制或打印文本?

时间:2011-12-22 22:35:59

标签: html readonly noncopyable non-printable

我有一个带有文本内容的网页(在.Net平台上,带有C#),我想阻止用户复制文本或打印文档。
如果用户很难获得该页面的副本,我知道他可以。但我想尽可能地努力 我已经找到了几点。

  • 使用Java Script阻止用户复制文本。下行是用户可以轻松地从源文本复制文本。
  • 不要将文字分成1个大图像,因为用户可以一次打印出来。
  • 使用插件在定义的视口大小中将文本显示为可滚动,但无法复制文本。然后,用户必须痛苦地打印他可以放在窗口视口中的每个位,这对我来说是。在这种情况下使用Flash。
  • 我看到ionCube's (php) solution您无法复制或查看源文本,但缺点是可以轻松打印。我想在这里看到一个asp的编码解决方案,以及阻止用户打印页面的能力:)。
  • Scribd不是一个解决方案,因为如果您选择阻止用户从您的scribd文档中复制文本,它会将文本转换为难以阅读的图像。

我可能还有更多解决方案,我不知道 在这种情况下,你能告诉我最好的解决方案吗?

2 个答案:

答案 0 :(得分:2)

没有解决方案。任何网页都必须在内存中表示为DOM,并且不缺少让人们操纵并从中提取文本的工具。

DRM充其量是无效的,当涉及HTML时,“最好的”还有很长的路要走。

答案 1 :(得分:2)

您可以使用初始解决方案并使用CSS规则将所有内容隐藏在打印版本中:

<style type="text/css" media="print">* { display: none;}</style>

当然,正如昆汀所说,没有明确的方法这样做,但阻止了选择,使用通过javascript在页面中写入的文本的编码版本并使用此CSS片段,您可以得到大约80%的用户。

document.getElementById('elementId').innerHTML = unescape(escapedTextGoesHere);