当有人试图打印页面时,我需要销毁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');
}
答案 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中执行此操作。
onbeforeprint
和onafterprint
方法仅适用于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!!");
});