禁用复制和粘贴

时间:2016-08-09 15:45:53

标签: javascript google-chrome-extension copy-paste

我使用以下代码来禁用复制粘贴

onpaste="return false;" oncut="return false;" oncontextmenu="return false;" oncopy="return false;".

这一切都很好。我已经安装了#34; easy-copy"在谷歌浏览器中扩展,仍然可以复制粘贴。有没有办法从扩展中禁用复制和粘贴?

我试图抓住所有事件,看看即使是那个扩展程序也会被粘贴,但即使粘贴它也不会触发任何事件。

对于事件捕获,我在chrome console中使用了以下代码:

monitorEvents($0)

简而言之,如何从浏览器扩展程序中禁用复制粘贴?我为什么需要这个?我有一个聊天应用程序,有些人将粘贴复制到垃圾邮件。

3 个答案:

答案 0 :(得分:1)

  

简而言之,如何从浏览器扩展程序中禁用复制粘贴?

我认为这不可能来自页面Javascript,因为扩展程序的运行信任级别高于网页。他们可以做网页无法做到的事情,比如改变浏览器自己的行为。

在我看来,处理这个的最好方法是服务器端。为每个帖子提供由相关因素确定的垃圾邮件分数,例如来自同一用户的帖子频率,帖子中的重复内容,仅外部链接,来自其他用户的downvotes ......如果帖子超过垃圾邮件分数限制,请不要向其他用户展示。如果你想让垃圾邮件制造者更难确定他们的垃圾邮件是否真正通过,你仍然可以自己展示给海报。

禁用所有用户的复制粘贴对我来说很重要。

答案 1 :(得分:0)

这里只是一些一般的想法。试图阻止这种操作永远不会完全起作用,因为浏览器的行为不同,最终无论你做什么都可以规避行为。

但是,为了让你更加尴尬,为什么不限制他们在给定时间内按下提交按钮的频率。或者限制文本框的最大文本大小。更好的是,根据之前对服务器的评论限制它,这将为您提供没有客户端验证的安全性。任何客户端验证只能阻碍尝试,但不能真正阻止它。

实际上你可以做的另一件事就是有一个拦截javascript函数来检查重复文本。

答案 2 :(得分:0)

Testing it on Chrome

您可以尝试使用

* {
  user-select: none;
  -webkit-user-select: none;/*IE,etc*/
  -moz-user-select: none; /*Mozzila Firefox*/
}
<h2>Copy Me if you Can ?</h2>

在我看来,这可行,请尝试删除 user-select: none;,看看是否有效果。