2011-09-09 24 views
3

次のコード行は、ブラウザのポップアップでHTMLページを作成し、ユーザーのポップアップを表示します:Javascriptがポップアップウィンドウは、Firefox/Chromeで動作します印刷ではなく、Internet Explorerの

function printPage(htmlPage) 
{ 
    var w = window.open("about:blank"); 
    w.document.write(htmlPage); 
    w.print(); 
} 

このコードが正常に開きますFirefoxとChromeの両方で印刷ダイアログが表示されます。ただし、IEでは、印刷ダイアログは表示されません。助言がありますか?

他の人が修正に問題を示唆しているように私はまた、)(プリントを呼び出した後、ポップアップを閉じて試してみた:

function printPage(htmlPage) 
{ 
    var w = window.open("about:blank"); 
    w.document.write(htmlPage); 
    w.print(); 
    w.close(); 
} 

無駄に。

+0

デベロッパーコンソールでは何を通知しましたか? –

+0

奇妙な; IE8では 'w'の下に関数が存在し、呼び出し時にエラーはスローされませんが、何も起こりません。 –

答えて

8

close()documentprint()を試す前に。

function printPage(htmlPage) 
{ 
    var w = window.open("about:blank"); 
    w.document.write(htmlPage); 
    w.document.close(); 
    w.print(); 
} 

Works in IE9

+0

ありがとう@ジョシュ3736これは働いた!問題は、文書ではなくウィンドウを閉じることでした。これは現在機能します。 – Kyle

+0

これは古いものであることを知っていますが、この動作のいくつかの論理的な説明があるかどうか不思議です。 ありがとうございます - これはFirefoxの問題を解決するのに役立ちました! – dmikam

+0

[spec says](https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-98948567) "' close() 'オープンしたドキュメントストリームを閉じます)***と強制的にレンダリングする*** "。ページがまだ完全にレンダリングされていないように見えるので、印刷できません。どうして? ¯\\ _(ツ)_ /¯ – josh3736

関連する問題