使用jQuery在网页中阻止Ctrl + P事件 - 在Safari浏览器中出现问题

时间:2014-01-21 06:31:45

标签: jquery events

我只想阻止用户获取网页的打印副本。我知道这不是用户友好的,但是,这是一个特殊的场景,一个考试界面,考生将在考试中尝试提问。所以我不希望他们拍摄页面的打印件。我还阻止了其他必要的选项,如上下文菜单,alt键,另存为html等,尽管它在用户的特定视图中并不好。

我使用Jquery完成了它,但代码在Safari中无效。

代码:

$(document).keydown(function(event) {
// Disable Ctrl+P.

   if(!event) event = window.event;
   if (event.ctrlKey && (event.which === 80)) {
     event.preventDefault();
     alert(event.isDefaultPrevented());
   }
});

但是,警报显示值'true',然后使用Print对话框提示。我尝试过return false代替event.preventDefault();,然后也没有工作。我无法弄清楚为什么在Safari中这种奇怪的行为。请帮忙。谢谢:) -

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码:

$(document).on("keyup keydown", function(e){
    if(e.ctrlKey && e.keyCode == 80){
        alert('Ctrl + P pressed!');
        return false;
    }
});

Demo