如何防止用户从我的网页中选择和复制文本

时间:2012-06-07 10:49:44

标签: javascript html css

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

8 个答案:

答案 0 :(得分:33)

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

网络的来源是可见的,可以自由阅读和复制。

即使您可以使用所有CSS,JavaScript或想象力技巧,也不会阻止用户手动阅读和将文本复制到其他文档/位置。

你可能希望做的最好的事情就是惹恼,足以阻止他们复制你的文字。但就像所有其他事情一样,持之以恒的人能够把它拉下来。

这就是我们人类所做的事情。

答案 1 :(得分:9)

-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

答案 2 :(得分:8)

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

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

答案 3 :(得分:5)

类似的问题here有一些好的答案,所以我不会覆盖旧的

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

答案 4 :(得分: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;
}

答案 5 :(得分: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)的网站上工作,并允许用户在此画布上拖放内容;如果用户离开画布定义的区域,文本将开始被选中'。这很难看。因此,出于明显的人体工程学原因,这是一个很好的方法。

答案 6 :(得分:0)

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

就前面的答案而言,它们似乎表示使用user-select css属性执行此操作的方法,但是,这样可以防止文本被选中,但它仍然会复制到剪贴板。但是,这是您单独使用css的最佳方式,可能会阻止某些用户复制您的内容。

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

答案 7 :(得分:0)

      <!-- Techincal -->
      <div class="item">
        <div class="row">
          <div class="col boldText">Technical</div>
        </div>

      <!--List-->
      <div class="item">
        <div class="row centerized">
          <div class="col col-40"></div>
          <div class="col col-30">Min</div><div class="col col-30">Max</div>
        </div>
        <div class="row">
          <div class="col col-40">Tech spec</div>
          <div class="col col-30"><input type="number" placeholder="0" ng-model="searchQuery.techMin"></div>
          <div class="col col-30"><input type="number" placeholder="5"  ng-model="searchQuery.techMax"></div>
        </div>
        <div class="row">
          <div class="col col-40">Radius</div>
          <div class="col col-30"><input type="number" placeholder="-1000" ng-model="searchQuery.radiusMin"></div>
          <div class="col col-30"><input type="number" placeholder="1000" ng-model="searchQuery.radiusMax"></div>
        </div>
      </div>
</div>

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