javascript - 如何使用 javascript 或 Jquery 禁用 CTRL+P?

标签 javascript jquery

在这里我试图禁用 Ctrl+P 但它没有让我提醒并且它还显示了打印选项

jQuery(document).bind("keyup keydown", function(e){
    if(e.ctrlKey && e.keyCode == 80){
        alert('fine');
        return false;
    }
});

http://jsfiddle.net/qaapD/10/

我不确定如何使用 jQuery 或 JavaScript 禁用 Ctrl+P 组合本身。

谢谢

最佳答案

你不能阻止用户打印,但你可以通过简单的 CSS 在用户打印文档时隐藏所有内容:

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

Updated fiddle .

如果您想在访问者尝试打印时向他/她显示一条自定义消息,而不仅仅是一个空白页,则可以使用客户端代码,但首先要像这样包装所有现有内容:

<div id="AllContent">
    <!-- all content here -->
</div>

并添加带有自定义消息的容器:

<div class="PrintMessage">You are not authorized to print this document</div>

现在去掉 <style type="text/css" media="print"> block 和代码将是:

if ('matchMedia' in window) {
    // Chrome, Firefox, and IE 10 support mediaMatch listeners
    window.matchMedia('print').addListener(function(media) {
        if (media.matches) {
            beforePrint();
        } else {
            // Fires immediately, so wait for the first mouse movement
            $(document).one('mouseover', afterPrint);
        }
    });
} else {
    // IE and Firefox fire before/after events
    $(window).on('beforeprint', beforePrint);
    $(window).on('afterprint', afterPrint);
}

function beforePrint() {
    $("#AllContent").hide();
    $(".PrintMessage").show();
}

function afterPrint() {
    $(".PrintMessage").hide();
    $("#AllContent").show();
}

代码取自this excellent answer .

Updated fiddle . (打印时显示消息)

关于javascript - 如何使用 javascript 或 Jquery 禁用 CTRL+P?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18843936/

相关文章:

javascript - 滑动 jQuery 菜单

javascript - Angular Ajax 请求发送对象

javascript - 如何将 javascript 中的内容回显到 div 类 html

javascript - Chrome 扩展程序中的视频事件记录

jquery - 我可以通过 webService 调用获取 gridview 的渲染 html 吗?

javascript - 是否有任何 javascript 或 jquery 函数可以确定字符串是数字还是日期?

javascript - 使用 css 或 jquery 自定义鼠标指针

javascript - 具有多个作用域的 JQuery UI 可拖放?

javascript - 如何根据选择器渲染我的组件 X 次?

javascript - 将 Session 值从我的 MVC 应用程序获取到我的 Javascript 中