2016-11-21 10 views
0

ボタンをクリックすると、トリガーは印刷データをトリガーしません。それについて考えてみると、別のウィンドウです。新しいウィンドウにこのビットのCSSをどのように追加できますか?何か案は。ありがとう。newWindowのテーブル内のページ区切り

編集:それは、Ctrl + P印刷画面上で右破る作っていたものをオンタブ

table { page-break-inside:auto } 
 
    tr { page-break-inside:avoid; page-break-after:auto } 
 
    thead { display:table-header-group } 
 
    tfoot { display:table-footer-group }

function PrintData(){ 
 
    var divToPrint=document.getElementById("Table"); 
 
    newWin= window.open(""); 
 
    newWin.document.write(divToPrint.outerHTML); 
 
    newWin.print(); 
 
    newWin.close(); 
 
    }

の内側にある、このでした

style=table{page-break-inside:auto}tr{page-break-inside:avoid;page-break-after:auto}thead{display:table-header-group}tfoot{display:table-footer-group}

答えて

0

オブジェクトにスタイルプロパティを設定する必要があります。たとえば、あなたのテーブルに適用する、あなたが追加します。

divToPrint.style.pageBreakInside = "auto"; 

あなたはTR、THEADとTFOOTオブジェクトを取得し、あなたが同様に上記した段落スタイルを適用する必要があります。表示は同じで、page-break-afterはpageBreakAfterです。

ここ
var trs = divToPrint.getElementsByTagName('tr'); 
for (var i = 0; i < trs.length; i++) { 
    trs[i].style.pageBreakInside = "avoid"; 
} 

はあなたの例の編集されたバージョンです:

テーブルの行のために、あなたのような何かをするだろう。 HTMLを新しいウィンドウに送信する前に、変更を加える必要があります。

function PrintData(){ 
    var divToPrint = document.getElementById("Table"); 
    divToPrint.style.pageBreakInside = "auto"; 
    var nTr = divToPrint.getElementsByTagName('TR') 
    for(i=0; i<nTr.length; i++){ 
     nTr[i].style.pageBreakAfter = 'auto'; 
     nTr[i].style.pageBreakInside = 'avoid'; 
    } 
    var nTh = divToPrint.getElementsByTagName('tHead'); 
    for(f=0; f<nTh.length; f++){ 
     nTh[f].style.display = 'table-header-group' 
    } 
    var nTf = divToPrint.getElementsByTagName('tFoot'); 
    for(g=0; g<nTf.length; g++){ 
     nTf[g].style.display = 'table-header-group' 
    } 
    newWin = window.open(""); 
    newWin.document.write(divToPrint.outerHTML); 
    newWin.print(); 
    newWin.close(); 
} 
+0

どのように私はすべてのtrを得ることができます。私はdocument.getElementById( "myTable")を試みました。getElementsByTagName( 'TR')。style.pageBreakInside = "auto";戻り値は未定義のプロパティーを設定できません –

+0

getElementsByTagNameは配列を返します。したがって、divToPrint.getElementsByTagName( 'tr')[0] .style.pageBreakInsideでループして0をループ変数に変更する必要があります。 – fanfavorite

+0

私はそれがどのように機能するかを上に示しました。 – fanfavorite

関連する問題