按下ctrl + p时触发javascript函数

当有人试图打印页面时,我需要销毁一个jQueryUI选项卡。 我不能用CSS隐藏它,因为我需要这些选项卡中的数据。

任何人都可以帮助/指出我正确的方向吗? 也许还有其他方法可以达到相同的效果?

通过销毁我的意思是:

$('#tabs').tabs("destroy"); 

这必须适用于IE7 / 8,因为这是该公司使用的浏览器。

解决方案(感谢@Phil):

 //Destroys the tabs for print window.onbeforeprint = destroyTabs; //Remakes tabs after printing window.onafterprint = makeTabs; function makeTabs() { $('#tabs').tabs(); } function destroyTabs() { $('#tabs').tabs('destroy'); } 

这可能有效:

 @media print { .ui-tabs-nav { display: none; } .ui-tabs .ui-tabs-hide { display: block !important; } } 

这是在黑暗中的另一个镜头(我还没试过)但是:

  

无法以跨浏览器友好的方式在JavaScript中执行此操作。

onbeforeprintonafterprint方法仅适用于IE和Firefox 6+。 您可以将它们与window.matchMedia结合使用,以添加对Chrome 9+和Safari 5.1+的支持。 我已经在http://tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/上写了关于如何实现这一点的文章。

 $(document).keypress("p",function(e) { if(e.ctrlKey) alert("Ctrl+P was pressed!!"); });