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でこれを行う方法はありません。

onbeforeprintandメソッドはonafterprint、IEおよびFirefox6以降でのみ機能します。それらを組み合わせて、window.matchMediaChrome9以降およびSafari5.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 に答える