2011-09-09 104 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中,不顯示打印對話框。有什麼建議麼?

我也打過電話的print()後關閉彈出窗口,正如其他人建議的修復問題:

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

無濟於事。

+0

開發者控制檯告訴你什麼? –

+0

奇怪;在IE8上,該函數存在於'w'下,調用它時不會引發錯誤,但沒有任何反應。 –

回答

8

close()document在嘗試print()之前。

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

Works in IE9

+0

謝謝@ josh3736這工作!問題是我試圖關閉窗口,而不是文檔。這現在起作用。 – Kyle

+0

知道這是一箇舊的...但只是好奇,如果有這種行爲的邏輯解釋。 謝謝 - 這幫助我解決了Firefox的一個問題! – dmikam

+0

[spec says](https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-98948567)「'close()'關閉由open打開的文檔流)***和力量渲染***「。所以看起來頁面還沒有完全渲染,所以它不能打印。爲什麼? ¯\\ _(ツ)_ /¯ – josh3736

相關問題