Javascript 如何防止Mozilla中的打印对话通过CTRL+;P

Javascript 如何防止Mozilla中的打印对话通过CTRL+;P,javascript,printing,mozilla,Javascript,Printing,Mozilla,我有下面的JavaScript代码,在我的视图中按CTRL+p时会被调用。它适用于所有浏览器(在更新userAgent名称后测试),但在Mozilla上我无法阻止打印对话。我做错了什么 实际上,我正在尝试添加我自己的逻辑,以使用Ctrl+p打印(我在页面上有多个I帧,并尝试选择要打印的一个),因此在尝试了几个小时后,我尝试在Mozilla上阻止它,结果发现Mozilla仍然使用下面的代码启动打印对话框,而不像IE 11,Edge,Chrome $(document).bind("keyup ke

我有下面的JavaScript代码,在我的视图中按CTRL+p时会被调用。它适用于所有浏览器(在更新userAgent名称后测试),但在Mozilla上我无法阻止打印对话。我做错了什么

实际上,我正在尝试添加我自己的逻辑,以使用Ctrl+p打印(我在页面上有多个I帧,并尝试选择要打印的一个),因此在尝试了几个小时后,我尝试在Mozilla上阻止它,结果发现Mozilla仍然使用下面的代码启动打印对话框,而不像IE 11,Edge,Chrome

$(document).bind("keyup keydown", function (e) {
if (e.ctrlKey && e.keyCode == 80) {
    var browser = navigator.userAgent.toLowerCase();
    if(browser.indexOf('firefox') > -1)
   {
       return false;
   }}
}
我想在Mozilla上停止默认的CTRL+p行为并运行我自己的脚本


这是在MVC web应用程序上,如果这对任何人都很重要的话。

就我个人而言,我会使用这段代码

$(document).bind("keyup keydown", function (e) {
    if (e.ctrlKey && e.keyCode == 80) {
       e.preventDefault();
    }
});

i、 e.总是,不管浏览器如何,防止默认-我很惊讶你不需要在其他浏览器中尝试
e.preventDefault()
-你知道,要
防止
默认的
动作发生:不要太聪明。不要截取Ctrl+P,而是在应用程序中放置一个“打印”或“打印视图”按钮,让用户使用。@JaromandaX我试过了,结果Ctrl+P仍然在启动打印对话框。我发现了我遇到的问题,请参见下文。@Bergi我希望我能控制这个功能。:PIt的jQuery,因此从事件处理程序返回false将基本上对您起到相同的作用。在这种情况下,原始代码将起作用,因为该代码可以将其标记为答案,因为这导致了问题的核心。我曾尝试返回false,但正如我提到的,我需要在截取CTRL+P后运行自己的逻辑。第二个问题是,当您在CTRL+P之前打开开发人员工具和调试器时,它甚至会在代码到达return false或e.preventDefault()行之前启动打印对话,因此我曾经获得两个打印对话,一个是Mozilla的默认设置,另一个是我的逻辑。关闭调试器工具,然后尝试只打开“我的打印”对话框并停止Mozilla默认设置。猜猜这是Mozilla错误?