1. プログラムの説明
1) このプログラムは、ページ上の印刷領域を選択し、iframe モードで印刷できます。
2) 元の print() との違いは、ページの印刷をキャンセルした後、現在アクセスしているページの内容を完全に保持できることです。
2. コード部分
1) JS関数:
次のようにコードをコピーします。
function do_print(id_str)//id-str はエリアの ID を出力します。
{
var el = document.getElementById(id_str);
var iframe = document.createElement('IFRAME');
vardoc = null;
iframe.setAttribute('style', 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;');
document.body.appendChild(iframe);
doc = iframe.contentWindow.document;
//印刷用に独自の CSS スタイルを導入します。www.111Cn.net は実際の状況に応じて変更します。
doc.write("<LINK rel="stylesheet" type="text/css" href="css/print.css">");
doc.write('<div>' + el.innerHTML + '</div>');
doc.close();
iframe.contentWindow.focus();
iframe.contentWindow.print();
if (navigator.userAgent.indexOf("MSIE") > 0)
{
document.body.removeChild(iframe);
}
}
2) HTML:
次のようにコードをコピーします。
// 印刷領域:
<div id="print_box">
...
</div>
// print を呼び出す
<button onclick="javascript:do_print('print_box');">印刷</button>
3. テスト
ページ上の印刷ボタンをクリックして印刷をテストします。
上記のメソッドに加えて、jquery を使用してインスタンス化することもできます。コードは次のとおりです。
次のようにコードをコピーします。
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery.PrintArea.js"></script>
<スクリプト>
$(document).ready(function(){
$("input#biuuu_button").click(function(){
$("div#myPrintArea").printArea();
});
});
</script>
<input id="biuuu_button" type="button" value="印刷"></input>
<div id="myPrintArea">....テキスト印刷部分....</div>
エリア印刷を実現したい場合は、次の方法を試すことができます
次の記事では、ページ全体を印刷するだけでなく、ページの特定の領域を印刷することもできる、ページの印刷機能を実現するための非常に簡単な方法を紹介します。
次のようにコードをコピーします。
<html>
<頭>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<スクリプト言語="javascript">
関数 printdiv(printpage){
var headstr="<html><head><title></title></head><body>";
var footstr="</body>";
var newstr=document.all.item(printpage).innerHTML;
var oldstr=document.body.innerHTML;
document.body.innerHTML=headstr+newstr+footstr;
window.print();
document.body.innerHTML=oldstr;
false を返します。
}
</script>
<title>分割プリント</title>
</head>
<本文>
<input type="button" onClick="printdiv('div_print');" value="print">
<div id="div_print">
<h1 style="Color:Red">印刷範囲: www.VeVB.COm</h1>
</div>
この領域は印刷できません。
</body>
</html>