4

找到此代码来打印我修改的 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);
4

3 回答 3

3

实际上原始代码也适用于我(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

于 2012-05-09T20:00:31.717 回答
1

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

因此,newWin.document.title仍然未定义。然后你将它连接到 string <title>'+newWin.document.title+'</title>,所以它被toString()-ed 为“未定义”。

因此,只需将标题直接写入字符串

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

正如 Eran Medan 在评论中所建议的那样。

这对我有用。

于 2012-05-09T19:52:22.960 回答
0

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

于 2012-05-16T14:34:34.693 回答