按下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中执行此操作。
onbeforeprint
和onafterprint
方法仅适用于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!!"); });