0

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

3 回答 3

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>
于 2012-07-05T17:08:14.947 回答
1

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

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

于 2012-07-05T17:42:50.057 回答
0
$(document).keypress("p",function(e) {
  if(e.ctrlKey)
    alert("Ctrl+P was pressed!!");
});
于 2012-07-05T17:08:19.343 回答