【问题标题】:How to stop users from copying or printing text from my web page?如何阻止用户从我的网页复制或打印文本?
【发布时间】:2011-12-22 22:35:58
【问题描述】:

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

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

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

【问题讨论】:

  • 谁投了反对票,你也能提供一个理由吗?

标签: html readonly noncopyable non-printable


【解决方案1】:

没有解决办法。任何网页都必须在内存中表示为 DOM,并且不乏工具可以让人们对其进行操作并从中提取文本。

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

【讨论】:

  • 我知道如果一个人想要文本,他可以得到它。即使出现了阻止他复制文本的标准 HTML 解决方案,他仍然可以手动输入文本。但这对我来说没关系。目前,我正在寻找一种解决方案,让普通用户难以复制或打印我的文本。
【解决方案2】:

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

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

当然,正如 Quentin 所说,没有明确的方法可以做到这一点,但是阻止选择,使用通过 javascript 在页面中写入的文本的编码版本并使用这个 CSS sn-p 你可以获得大约 80 % 的用户。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 2017-01-23
    • 1970-01-01
    • 2013-08-17
    • 2022-12-15
    • 2012-01-13
    相关资源
    最近更新 更多