找到此代码以打印我修改过的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);
答案 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);
答案 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)
这可能是使用该文档打开的编辑器的行为。在保存文档之前,编辑器标题将显示“无标题”。这必须是设计的。