javascript打印的窗口标题

时间:2012-05-09 19:44:01

标签: javascript window.open

找到此代码以打印我修改过的javascript元素。虽然我添加了document.title<title></title>标记,但在常规文本编辑器中打开的窗口显示为untitled

这通常是保存文本之前的情况。有没有办法显示标题?

    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);

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

我的猜测是作业newWin.document.title = "Readings on PageLinks";失败,因为当时页面中没有<title>元素。

因此,newWin.document.title仍未定义。然后你将它连接到字符串<title>'+newWin.document.title+'</title>,所以得到toString() - 编辑为“未定义”。

所以,只需将标题直接写入字符串

即可
newWin.document.write('<html><head><title>Readings on PageLinks</title>...');
正如Eran Medan在评论中所建议的那样。

这对我有用。

答案 2 :(得分:0)

这可能是使用该文档打开的编辑器的行为。在保存文档之前,编辑器标题将显示“无标题”。这必须是设计的。