按下ctrl + p时触发javascript函数

时间:2012-07-05 17:05:47

标签: javascript jquery jquery-ui

当有人试图打印页面时,我需要销毁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');
}

3 个答案:

答案 0 :(得分:3)

这可能有效:

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

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

<script type="text/javascript">
     window.onbeforeprint = destroyTabs;

     function destroyTabs(){
       $('#tabs').tabs('destroy').tabs();
     }
</script>

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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