8

ページを印刷するときに、JavaScript コードが実行されているようです。
ページが現在印刷されているかどうかを確認するにはどうすればよいですか? 私はいくつかのjsサイズ変更を行い、印刷を少し異なる方法で処理する必要があります。

4

2 に答える 2

9

IE ブラウザ以外ではできません。印刷前イベントを持つブラウザは他にありません。ただし、印刷中にのみ適用する特定のスタイルシートをターゲットにすることができます。

<!-- In head -->
<link rel="stylesheet" type="text/css" media="print" href="print.css" />

このスタイルシートは印刷前に適用されます。これにより、主要なセクションの非表示、アイテムの移動、改ページなどの印刷専用スタイリングの実行など、いくつかの驚くべき変更を実行できます。

もう 1 つのオプションは、ユーザーに [このページを印刷] ボタンを提供することです。そのボタンは、JavaScript を処理し、 を呼び出しwindow.print()て、変更を元に戻すことができます。

function printMe() {
    // perform changes
    window.print();
    // revert changes
}

このwindow.print()メソッドは (私がテストしたすべてのブラウザーで) 常にブロックされるため、後で変更をすぐに元に戻しても安全です。ただし、ユーザーがメニューまたはツールバーから印刷することを選択した場合は、うまくいきません。

複雑な Web アプリでこのケースを処理した 1 つの方法は、特殊な DIV 以外のすべてを非表示にする印刷スタイルシートを用意することでした。ユーザーが印刷をクリックすると、警告メッセージが表示されます。印刷ボタンをクリックすると、その div に正しい情報が入力されます。たいしたことではありませんが、少なくとも数ページのゴミはありませんでした。

于 2011-10-04T08:04:30.227 に答える
3

私の知る限り、一般的な可能性はありません。IE には onbeforeprint と onafterprint があり、Firefox 5/6 以降にも追加されています (よくわかりません)。印刷物固有のスタイルシートの使用を検討する

<link rel="stylesheet" href="print.css" type="text/css" media="print" /> 

その他の関連する質問

于 2011-10-04T08:02:25.780 に答える