2011-10-04 21 views
8

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

答えて

9

を、使用することを検討してください。他のブラウザには、印刷前イベントがありません。

<!-- 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以外のすべてを隠す印刷スタイルシートを用意することでした。ユーザーが印刷をクリックすると、警告メッセージが表示されます。印刷ボタンをクリックすると、その部門に正しい情報が入力されます。それは素晴らしいことではありませんが、少なくとも彼らはごみの数ページを取得しませんでした。

3

AFAIK一般的な可能性はありません。 IEにはonbeforeprintとonafterprintがあり、Firefox 5/6 +にも追加されています(私は確かに分かりません)。 印刷特定のスタイルシート

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

他の関連する質問IEブラウザ以外のあなたがすることはできません

関連する問題