Javascript 检测是否按下了ctrl按钮
我想阻止用户打印页面 我想我会将屏幕设置为不包含工具栏,并防止右键单击,防止Ctrl+P和打印屏幕按钮。 这能做到吗Javascript 检测是否按下了ctrl按钮,javascript,Javascript,我想阻止用户打印页面 我想我会将屏幕设置为不包含工具栏,并防止右键单击,防止Ctrl+P和打印屏幕按钮。 这能做到吗 有什么好的代码吗?到目前为止,我找了不少,但运气不太好。我知道这不是万无一失的,但它会阻止一些用户复制或打印。你不能这样做……你不能禁用用户的打印能力,你也不应该尝试 Ctrl+p是程序员打印的方式,文件打印(取决于浏览器)是典型用户的打印方式……因此这甚至不会禁用最常用的方法。此外,任何一个优秀的程序员都可以绕过这个问题,所以它实际上不会阻止任何人 无论您向用户提供的任何数据是
有什么好的代码吗?到目前为止,我找了不少,但运气不太好。我知道这不是万无一失的,但它会阻止一些用户复制或打印。你不能这样做……你不能禁用用户的打印能力,你也不应该尝试 Ctrl+p是程序员打印的方式,文件打印(取决于浏览器)是典型用户的打印方式……因此这甚至不会禁用最常用的方法。此外,任何一个优秀的程序员都可以绕过这个问题,所以它实际上不会阻止任何人
无论您向用户提供的任何数据是否显示,他们都可以查看、复制、打印等。您无法阻止这种情况发生,绝对不是100%。如果这是您的要求之一……您应该询问网站是否是提供这些数据的最佳方式。一方面,信息成本高昂,因为它非常有价值。在正确的地方获得正确的信息只会改变你的生活。另一方面,信息想要免费,因为获取信息的成本一直在降低。所以这两个人互相争斗 另外:
信息想要自由,代码想要错误。Nick Craver的答案是正确的,你不能阻止它,但无论如何,如果你想使用mootools检测组合键,你可以使用键盘类来定义组合键并向其中添加事件:
这可能有助于显示警告或类似的内容:)这样做会激怒合法用户,如果你认为严重侵犯版权者使用常规浏览器(可以禁用其打印功能),那么你就大错特错了。我同意上面的答案 用户总能找到解决方法, -计算机对于受版权保护的材料是不安全的,而且永远不会安全。 你需要考虑到这一点。
<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>
功能检测专用键(e){
var evtobj=window.event?事件:e
if(evtobj.altKey)
警报(“您按下了“Ctrl”);
evtobj.preventDefault();
}
document.onkeypress=检测特殊键
例如,您可以使用jQuery。然而,想想看:浏览器运行在某个人拥有的客户端pc上。这个人应该控制他/她的设备上发生的事情。您不需要开始使用脚本来摆脱最终用户可能想要使用的标准功能
如果你不想打印一些东西,就不要在公共场所展示。如果它是机密的,就这样对待它
格尔茨,克里斯。考虑到这一点。我同意其他答案,并提出了另一种解决方法。用户所要做的就是截图,它涉及到操作系统的应用层,其中一个你甚至不希望改变。在Ubuntu上,它甚至可以在用户的主菜单中执行此操作 如果您想让普通计算机用户无法使用它,这将有助于:
几年前,我建立了一个考试系统,其中一个要求是让人们很难打印考试。如我们所知,删除打印功能是不可能的(除非您在浏览器软件中做一些更改)。你能做的就是让非技术人员更难打印页面。例如,当页面进入打印机时,使用CSS清空页面:
<style type="text/css">
@media print {
body { display:none }
}
</style>
算了吧。你不能阻止人们以任何方式打印、复制或使用他们的浏览器。唯一的解决办法是:如果你不想打印或复制你的内容,那么就不要把它放到网上。“就是这么简单,没有其他办法了。”罗托拉-有正当理由阻止某些正常功能。一种可能是它是一个公共终端。另一个是出于安全原因。@Gert:。。。但这在JS中无法实现(最好从键盘上删除打印和ctrl键:-)@chris_l-理想情况下,删除键盘和鼠标,最大化浏览器并使用触摸屏你需要检查
.ctrlKey
在这里,你正在检查alt
,无论如何,请不要这样打扰用户。不是我的否决票,但你至少应该修复你的示例代码:)@downvoter-帮助说出你不同意的原因,否则它对任何人都没有帮助。CSS-非常聪明;)虽然使用Firebug很容易规避,但它主要是为了让非技术人员更难使用。:)
$(document).ready(function () {
$(document).bind('copy paste', function (e) {
e.preventDefault();
});
});