2012-05-09 66 views
4

找到此代碼以打印我修改的JavaScript元素。儘管我添加了document.title<title></title>標籤,但在常規文本編輯器中打開的窗口顯示爲untitledJavaScript打印的窗口標題

這通常是保存文本之前的情況。無論如何,有沒有辦法顯示標題?

var element=document.getElementById(element_id); 
    var newWin=window.open('','Print-Window','width=400,height=400,top=100,left=100'); 

    newWin.document.open(); 
    newWin.document.title = "Readings on PageLinks"; 
    newWin.document.write('<html><head><title>'+newWin.document.title+'</title></head><body onload="window.print()">'+element.innerHTML+'</body></html>'); 
    newWin.document.close(); 

    setTimeout(function(){ newWin.close(); },10); 
+1

爲什麼不?。newWin.document.write(」 讀數上PageLinks ... –

+0

這並沒有有所作爲我有這樣的第一 – user823527

+0

必須的有一些不同的東西或其他地方犯了一個錯誤,至少對於我的電腦來說是這樣的 – Huangism

回答

1

我的猜測是,分配newWin.document.title = "Readings on PageLinks";失敗,因爲當時的頁面沒有<title>元素。

因此,newWin.document.title仍未定義。然後你把它連接到字符串<title>'+newWin.document.title+'</title>,所以它得到toString() -ed爲「未定義」。

所以,只要直接寫入標題到字符串

newWin.document.write('<html><head><title>Readings on PageLinks</title>...'); 

如伊蘭棉蘭的意見建議。

這對我有效。

+0

儘管如此,但再次閱讀,標題是「無標題」,而不是「未定義」(例如,沒有標題的窗口) –

2

其實原來的代碼爲我工作,以及(瀏覽器,其他瀏覽器上沒有測試)

var element_id = "id1"; 
var element = document.getElementById(element_id); 
var newWin = window.open('', 'Print-Window', 'width=400,height=400,top=100,left=100'); 

newWin.document.open(); 
newWin.document.title = "Readings on PageLinks"; 
newWin.document.write('<html><head></head><body onload="window.print()">' + element.innerHTML + '</body></html>'); 
newWin.document.close(); 

setTimeout(function() { 
    newWin.close(); 
}, 10);​ 

查看JSFiddle

+0

沒有在我的Opera上工作。標題是「about:blank」,顯然是用空的url字符串打開頁面的結果。不過,您以前的建議可以在Opera中使用。 – Imp

0

這可能是與打開的編輯器的行爲文件。在保存文檔之前,編輯器標題將會顯示「未命名」。這必須通過設計。