0

Web ページに 3 つの印刷ボタンを追加し、それぞれが Web ページの一部 (div) を印刷します。これがそのコードです

function printPage(id)
{
   var html="<html>";
   //html+="<link rel="stylesheet" type="text/css" href="../css/template.css" />";
   html+= document.getElementById(id).innerHTML;
   html+="</html>";

   var printWin = window.open('','_blank','left=0,top=0,width=500,height=500,fullscreen=1,toolbar=0,scrollbars=0,status  =0');
   printWin.document.write(html);
   printWin.document.close();
   printWin.focus();
   printWin.print();
   printWin.close();
}


 <input name="b_print" type="button" class="ipt"   onClick="printPage('one');" value="Print One">
<input name="b_print" type="button" class="ipt"   onClick="printPage('two');" value="Print Two">
<input name="b_print" type="button" class="ipt"   onClick="printPage('three');" value="Print three">

「印刷」ボタンをクリックすると、新しいウィンドウが開き、正常に印刷されて閉じます。これについていくつか質問があります

まず、同じページに印刷ウィンドウをポップアップしたいと思います。そのために、_blankプロパティを にwindow.open置き換えまし_parentたが、印刷後、ページがリダイレクトされたり、印刷を開始したページに戻ったりしません。これを回避する方法は?

次に、印刷ページのスタイルを制御するにはどうすればよいですか? スタイルシートをリンクしようとしましたが (上記のコードを参照)、うまくいきません。

ヘルプや提案をお寄せいただきありがとうございます


function printPage(printpage)
                {
                    var headstr = '<html><head></head>'+'<link rel="stylesheet" type="text/css" href="../css/template.css" />'+'<body><br/><br/><br/>';
                    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;
                    return false;
                }
4

2 に答える 2

0

ポップアップを使用する代わりに、非表示の Iframe を使用できます。それは物事を「同じページ」に保ちます。スタイルシート パスが既に含まれているダミー ページ「print.html」を作成します。正しいパスがあれば、それは機能します。

印刷用のダミー ページで、親ページから HTML コンテンツ (この場合は HTMLStuff という文字列) をフェッチする関数を作成し、それ自体を印刷します。

<iframe id="printf" src="print.html" name="printf"></iframe>

document.body.innerHTML = parent.htmlStuff;
window.print()

iframe の SRC を設定して、さまざまなコンテンツを取得するさまざまなページを作成できます。これを行う方法は他にもありますが、これは非常に単純です。

于 2012-07-30T18:02:16.310 に答える