检测是否按下了ctrl按钮

时间:2010-06-20 11:52:49

标签: javascript

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

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

10 个答案:

答案 0 :(得分:5)

您无法执行此操作...您无法禁用用户的打印功能,也不能尝试

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

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

答案 1 :(得分:3)

通过这样做,您会惹恼合法用户,如果您认为严重的版权侵犯者使用常规浏览器(您可以禁用其打印功能),那么您非常错误。

答案 2 :(得分:1)

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

此外:
信息想要自由,而且代码想要错。

答案 3 :(得分:1)

我同意上述答案。

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

答案 4 :(得分:1)

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

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

答案 5 :(得分:1)

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

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

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

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

答案 6 :(得分:0)

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

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

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

答案 7 :(得分:0)

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

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

Grz,Kris。

答案 8 :(得分:0)

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

答案 9 :(得分:-1)

<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>