2017-11-16 5 views
0

私は、window.printを使用してhtmlページを印刷しようとしています。 HTMLページは、残りのAPIコールごとに更新されています。ので、私はそれぞれの残りのAPIコールのために継続的に印刷することができますか?document.getElementById()を動的に使用できますか?

var myPrintContent = document.getElementById("data-box"); 
    var myPrintWindow = window.open('','Print-Window'); 
    var popupWindow = window.open('','Print-Window'); 
    popupWindow.document.write('<TITLE></TITLE>\n'); 
    popupWindow.document.write('<URL></URL>\n'); 
    popupWindow.document.write('<script>\n'); 
    popupWindow.document.write('function print_win(){\n'); 
    popupWindow.document.write('\nwindow.print();\n');  
    popupWindow.document.write('}\n'); 
    popupWindow.document.write('<\/script>\n'); 
    popupWindow.document.write('</HEAD>\n'); 
    popupWindow.document.write('<BODY onload="print_win()" >\n');   
    popupWindow.document.write(myPrintContent.innerHTML) 
    popupWindow.document.write('</BODY>\n'); 
    popupWindow.document.write('</HTML>\n'); 
    popupWindow.document.close(); 

これは私がやっていることです。 data-box.innerhtmlの内容は従業員によって異なります。だから毎回私は1ページを印刷するよう呼びます。しかし、次の従業員にとって、私が印刷機能を再度呼び出すと、従業員の詳細が印刷されるだけです。だから私が望むのは、私が異なる従業員に異なるIDを与えた場合、どのようにすべてのIDを動的に得ることができるかです。私は一度印刷を呼び出すと、私はすべての従業員のすべてのデータを印刷することができます。

+0

同じprintContentを複数回印刷しますか? –

+0

各API呼び出しの内容が変更されていません – user2610

+0

要素のinnerHtmlを言うとしていますか – Krishjs

答えて

0
window.print(); 

w3schoolは、現在のウィンドウを印刷する方法です。 document.getElementById()メソッドでは何もありません。 あなたのページを印刷することに興味があるなら、簡単にウィンドウを印刷してください。それでおしまい。

しかし、他の目的でdocument.getElementById()を使用する場合は、要素の変数(動的ID)を考慮して渡すことができます。 ここにあなたはそれを行う方法です

var myId = "my-element-id"; 
var myContent = document.getElementById(myId).innerHTML; 

良いヘルプのためにコードを投稿してください。

+0

あなたの返信をありがとう。私は私が14の異なるIDを持っていると仮定することができます。だから私はこれらのIDを動的に1回print関数を呼び出すことによって印刷することができます。 – user2610

+0

私は試していないが、できることを願っています。それらのIDを配列に入れてループさせるだけです。印刷は最後のループ内で行う必要があります – ahmednawazbutt

+0

どのようにすることができますか?私はidを取得してから、htmlページに書き込んでいるので、window.printを呼び出してロードしています。だから私はforループに入れても、最後のidだけが印刷されています。 – user2610