2011-03-29 56 views
3

我正在寻找任何方式来创建网页,以便用户无法从我的网页上复制内容。即用户将不能够选择网页上存在的任何文本。 让我们假设我在asp.net上工作禁止从网页复制数据

任何有趣的想法来完成任务?

+0

您是否尝试过禁用右键单击 – Dotnet 2011-03-29 12:09:38

+0

什么Dorabubu说,并抓住CTRL + C – rsplak 2011-03-29 12:10:20

+0

但我们不使用右键单击以选择文本..如果用户选择文本使用鼠标,然后按Ctrl + C? – 2011-03-29 12:11:26

回答

6

您可以使用user-select CSS3 propertie

HTML这样的:

<span class="protected">Datas you wants protect</span> 

而且通讯员CSS:

.protected { 
    -moz-user-select:none; 
    -webkit-user-select:none; 
    user-select:none; 
} 

见我的例子:http://jsfiddle.net/DoubleYo/RPv4q/

该解决方案是不跨浏览器,但工作正常Firefox和Chrome/Safari浏览器

编辑:高级用户可以将您的内容与视图复制页面源代码,使PDF格式或打印页面,有些人提到萤火虫,小提琴手。

+0

我们可以将任何透明的DIV放在数据前面吗?so..user可以看到并读取数据但不能复制它? – 2011-03-29 12:45:17

+0

juste在您希望保护的数据周围添加一个',并在CSS中使用'.protected'选择器。 – DoubleYo 2011-03-29 12:51:42

+0

请编辑你的答案,并在答案中附上你的评论...如果你这样做,这将是非常好的.. – 2011-03-29 12:57:31

18

最终你不能。

如果您禁用选择文本的能力,上下文菜单甚至只是上下文菜单中的复制选项,用户仍然可以通过查看您的内容。

如果他们可以看到它,他们可以复制它:

  • 截屏。
  • 拍照。
  • 输入他们在记事本中看到的文字。
  • 将文本录入录音机。

这是不值得的开发工作,你不会停止确定的复印机。你最终会做的就是烦扰你的合法用户。

为您的网站增加价值,让人们不再需要仅仅考虑内容和运行,而是希望不断回来。这可能是:

  • 允许用户生成的内容扩展到那里。
  • 定期更新内容,以便始终保持新鲜。
+0

更不用说任何机构都可以通过使用Fiddler或Firebug等工具来捕获页面源代码! – VinayC 2011-03-29 12:16:12

+1

我们可以很容易地使用页面源文件复制文本...当我想要复制某个网站上复制的内容时,我也做了同样的事情....但让我们谈谈一个**卧底人士** ......他并没有“不知道什么是页面源代码和调试器:-) – 2011-03-29 12:20:20

+3

@Sangram - 你可以停止右键单击等等,看看力学的其他答案。但是,您必须权衡所涉及的努力与潜在收益。充其量,你可能会发现它是微不足道的。 – ChrisF 2011-03-29 12:22:42

0

试试这个

<html> 
<head> 
<script language="<strong class="highlight">javascript</strong>"> 

function onKeyDown() { 

// current pressed key 
var pressedKey = String.fromCharCode(event.keyCode).toLowerCase(); 

if (event.ctrlKey && (pressedKey == "c" || 
        pressedKey == "v")) { 
// <strong class="highlight">disable</strong> key press porcessing 
event.returnValue = false; 
} 

} // onKeyDown 

</script> 
</head> 

<body> 
    <form name="aForm"> 
    <input type="text" name="aText" onkeydown = "onKeyDown()"> 
</form> 
</body> 
</html> 
0

当有人访问你的网站,他们收到HTML/CSS /图像/ JavaScript代码构成了大部分的网站。因此,他们已经拥有了您的内容,因为大多数浏览器也会缓存此内容,以便更快地浏览。

了解更多关于HTTP这里 - http://www.http.header.free.fr/http.html

所以这是不太可能完全阻止任何人知道如何在HTTP协议的工作。但是你可以做的是,也许听右点击和右键点击停止正常的最终用户和保存图像等,您可以在这里得到一个片段 - http://www.dynamicdrive.com/dynamicindex9/noright.htm

但是,如果你正在谈论保护图像/文件,这些文件卖,请看看Protect html/php/image files from tracking,因为它然后适用于您的问题。

0

您可以添加到你的身体标记,像这样:

<body onselectstart="return false"> 
0

这是互联网。您无法完全保护页面的内容。

但是你可以很难为用户完成这项任务。

您也可以处理键盘和鼠标输入,例如Ctrl + C或右键单击鼠标。

但请记住,用户可以随时查看网页的源代码,将其复制并粘贴在HTML编辑器。

您可以在Silverlight或Flash网站,但这将“禁用”搜索引擎索引。

+0

我们可以很容易地使用页面源复制文本...当我想要从复制被禁用的网站上复制某些内容时,我也做了同样的事情....但是让我们谈谈一个**非诚勿扰的人** ......他没有' t知道什么是页面源代码和调试器:-) – 2011-03-29 12:25:16

0

转换你的页面转换成图像

+1

或强制闪光。但参考文献将会很糟糕。 – DoubleYo 2011-03-29 13:03:47

1

如果发下来的任何文本的用户将能够看到源,所以禁止复制,并通过任何方法粘贴不会真正帮助制止确定的复印机。

最有效的方法是将您的文本渲染到服务器上的图像上,并发送图像而不是原始文本,但在此之前,您需要考虑几个缺点:1)您需要容量在您的服务器上生成图像。 2)数据负载将高于文本,压缩效率会降低。 3)你也可能会失去一些缓存选项。

是否有您不希望用户复制的文本,或许如果你能提供更多的细节其它方法可能一个特别的原因?

+0

有时候,网站上的数据是独一无二的,我不希望这些数据很容易被复制。\t 我们可以很容易地使用页面源复制文本...我也想在网站上复制某些内容哪些复制被禁用....但让我们谈论一个**卧虎藏龙** ..他不知道什么是页面源代码和调试器:-) – 2011-03-29 12:33:02

0

您可以禁用选择,并与输出选择您不必复制/粘贴,但是我建议这样做,只有在你的页面的某些部分,因为阻挠用户。

这是简单的代码,你可以做到这一点,例如,如果你有id="notme"一个div,运行disableSelOnThis("notme");

function disableSelOnThis(IdName) { 
     var oElem = document.getElementById(IdName); 
     if (oElem) 
      disableSelection(oElem); } 

    function disableSelection(element) { 
     element.onselectstart = function() { 
      return false; 
     }; 

     element.unselectable = "on"; 
     element.style.MozUserSelect = "none"; 
     element.style.cursor = "default"; 
    } 

的代码来自:http://ajaxcookbook.org/disable-text-selection/,但它的接缝,这网站是不是更长寿。

当然没有JavaScript的支持,这是不工作,一切ChrisF说仍然有效。在身体标记: -

0

只需复制并粘贴下面的JavaScript在网页:

<script language="javascript" type="text/javascript"> 
     function disableselect(e) {    
      return false 
     } 
     function reEnable() { 
      return true 
     } 

     document.onselectstart = new Function("return false") 


     if (window.sidebar) { 
      document.onmousedown = disableselect     // for mozilla   
      document.onclick = reEnable 
     } 

     function clickIE() { 
      if (document.all) { 
       (message); 
       return false; 
      } 
     } 


     document.oncontextmenu = new Function("return false") 

    var element = document.getElementById('tbl'); 

    element.onmousedown = function() { return false; }  // mozilla   

    </script>   

注意如果上面的代码并不适用于火狐然后添加样式=“无MOZ用户选”这需要与上面的代码一起限制。