2012-05-09 4 views
4

Нашел этот код, чтобы напечатать элемент javascript, который я изменил. Хотя я добавил теги document.title и <title></title>, окно, которое открывается в обычном текстовом редакторе, сообщает untitled.Название окна для javascript print

Это обычно ситуация перед сохранением текста. Есть ли способ показать название в любом случае?

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 как «undefined».

Так, просто напишите название непосредственно в строку

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

в Эран Медан предложил в комментариях.

Это сработало для меня.

+0

Хотя это так, но снова прочитано, название «Untitled», а не «undefined» (например, окно, которое не имеет названия) –

2

На самом деле исходный код работал для меня, как хорошо (Chrome, не проверял на других браузерах)

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

Это может быть поведение редактора, который открыт с документ. Пока документ не будет сохранен, заголовок редактора скажет «untitled». Это должно быть по дизайну.

Смежные вопросы