按CTRL + P后如何使用JavaScript禁用打印弹出窗口

时间:2017-11-09 10:41:47

标签: javascript jquery

$(document).bind("keyup keydown", function (e) {
        if (e.ctrlKey && (e.key == "p" || e.charCode == 16 || e.charCode == 112 || e.keyCode == 80)) {
            e.cancelBubble = true;
            e.preventDefault();

 return Print();
        }
    });

我尝试了上面的代码,它适用于chrome,Mozilla但不适用于Internet Explorer。在IE打印对话框之后,我的Print()正在调用。

请建议。

1 个答案:

答案 0 :(得分:0)

由于Internet Explorer不支持preventDefault(),您最好的是如下所示:

if (e.preventDefault) //checks for the presence of the preventDefault function
{
   e.preventDefault() // calls the function
}
else
    if (/keypress logic goes here/) {
        window.event.returnValue = null;
        event.keyCode=0; // if the keyCode is 0, IE will not execute the command.
    }

因此,当浏览器支持preventDefault(Chrome,Firefox等)时,只需调用它即可。如果它没有(IE),请将keyCode设置为不能执行原始功能的值(防止出现打印对话框)。