繁体   English   中英

检测是否按下了ctrl按钮

[英]Detect if the ctrl button was pressed

我想阻止用户打印页面我认为我会将屏幕设置为不包含工具栏,并防止右键单击,并阻止Ctrl + P打印屏幕按钮。 可以这样做吗?

这有什么好的代码吗? 到目前为止,我已经搜索了很多,但运气不多。 我知道这不是万无一失的,但它会阻止一些用户复制或打印。

你不能这样做...你不能禁用用户的打印能力,也不应该尝试

Ctrl + P程序员打印的方式, 文件 > 打印 (取决于浏览器)是典型用户的方式...所以这甚至不会禁用最常用的方法。 此外,任何体面的程序员都可以解决这个问题,所以它实际上并没有阻止任何人。

您收到的任何数据,无论是否显示,他们都可以查看,复制,打印等......您无法阻止这种情况,绝对不是100%。 如果这是您的要求之一......您应该询问网站是否是提供此数据的最佳方式。

通过这样做,你会惹恼合法用户,如果你认为一个严重的版权违背使用常规浏览器(它的打印功能,您可以禁用),那么你就大错特错

一方面,信息需要昂贵,因为它非常有价值。 在正确的地方找到正确的信息只会改变你的生活。 另一方面,信息希望是免费的,因为获取信息的成本一直在变得越来越低。 所以你们这两个人互相争斗。 资源

也:
信息想要自由,代码想要错。

我同意上面的答案。

用户总能找到解决方法, - 计算机对受版权保护的材料不安全,永远不会。 你需要考虑到这一点。

如果您想要让常规计算机用户无法做到这一点,这将有助于:

  1. 创建一个应用程序,在输入您提供的密钥代码后加载并显示文档(通过Web服务器检查)。
  2. 应用程序没有打印功能,因为您没有将它们放入
  3. 如果用户按下“printscreen”并显示版权警告,则注册一个全局keyhook以清空文档

几年前,我建立了一个考试系统,其中一个要求是让人们难以打印考试。 正如我们所知,删除打印功能是不可能的(除非您在浏览器软件中进行了一些更改)。 你能做的是非技术人员更难打印页面。 例如,当进入打印机时,使用CSS将页面空白:

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

以下jQuery脚本将阻止在某些浏览器中进行复制和粘贴:

$(document).ready(function () {
  $(document).bind('copy paste', function (e) {
    e.preventDefault();
  });
});

@Nick Craver的答案是对的,你不能阻止它,但无论如何你想要使用mootools检测组合键,你有键盘类,可以让你定义键组合并向它添加事件:

http://mootools.net/docs/more/Interface/Keyboard

这可能对显示警告或类似的东西很有用:)

例如,您可以使用jQuery。 但请想一想:浏览器运行在由某人拥有的客户端PC上。 那个人应该控制他/她的设备上发生的事情。 您不必开始使用脚本来摆脱最终用户可能想要使用的标准功能。

如果您不想要打印某些内容,请不要在公共场所展示。 如果它是保密的,请将其视为保密。

格兹,克里斯。

考虑到这一点。 我同意其他答案并提出另一种解决方法。 所有用户必须做的是截取屏幕截图,其中涉及操作系统的应用程序层,其中一个甚至无法改变。 在Ubuntu上,它甚至可以在用户的​​主菜单中执行此操作。

<script type="text/javascript">
function detectspecialkeys(e){
var evtobj=window.event? event : e
if (evtobj.altKey)
    alert("you pressed 'Ctrl'");
    evtobj.preventDefault();
}
document.onkeypress=detectspecialkeys
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM