印刷イベントは必要ないと思います。@media print
Javascript(?) 基準に基づいてスタイルを調整するだけです。ユーザーがページを印刷しよう@media print
とすると、スタイルが適用され、スタイルが有効になります。
<html>
<head>
<style id="styles" type="text/css">
@media print { .noprint { display:none; } }
</style>
<script type="text/javascript">
var x = Math.random();
if (x > .5) {
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = '@media print { .maybe_noprint { display:none; } }';
document.getElementsByTagName('head')[0].appendChild(style);
}
</script>
</head>
<body>
<div class="noprint">This will never print.</div>
<span class="maybe_noprint">This may print depending on the value of x.</span>
</body>
</html>
サーバー側の基準を使用して何を印刷するかを決定している場合は、サーバー側のコードを吐き出し@media print
、必要に応じてクラスを装飾します。また、すでに 内にある既存のクラスを変更する@media print
か、 以外のものを使用して新しい CSS を構築することを検討することもできinnerHTML
ます。これは、私にはひどいにおいがすることを認めますが、Opera 9.6、Safari for Windows 3.1.2 で動作するようです。 、IE 6、および Firefox 2.0.0.17 (他のブラウザーはテストしていません)。