2011-07-18 13 views
0

だから私はこの状況を持っています:htmlソースをウィンドウやタブに表示させずに印刷する方法はありますか?

私はいくつかの完全なHTMLソースを返すコントローラアクションにajax投稿を実行します(つまり、結果がブラウザで表示され、ビューソースを右クリックして選択した場合、それは返されるものです)。

これで、HTMLソースはブラウザに表示されているように(マークアップではなく、実際にブラウザに表示されている場合に表示されるように)印刷できます。

これは、新しいタブまたはウィンドウまたはポップアップウィンドウを開くことなく行う必要があります。出来ますか?そしてもしそうなら、どのように?

ありがとうございました

答えて

1

一時的な目に見えないiframeはどうですか。

var iframe = document.createElement('iframe'); 
iframe.style.display = 'none'; 
document.body.appendChild(iframe); 
iframe.contentDocument.open(); 
iframe.contentDocument.write(html_source_here); 
iframe.contentDocument.close(); 
iframe.contentWindow.print(); 
document.body.removeChild(iframe); 
0

はい、あなたはDIVを作成することによって、それを行うとinnerHTML関数を呼び出すことによって、HTMLを追加することができます。

document.getElementById('yourNewDIV').innerHTML = htmlReceived; 
+0

親ページを印刷するので、応答ページを印刷するのは役に立ちません。応答HTMLはdiv内にあります。また、親ページのスタイルやスクリプトのようなものがdivに干渉する可能性があります。おそらくこれはiframeが優れています。 –

+1

ありがとう、実際には、 "new div"というアイデアでうまく動作するjqueryをダウンロードしました。これは印刷でも動作します。このjqueryはprintElement()関数を持っていますので、あなたは$( "element")と言っています。printElement()... – DTR

関連する問題