有没有一种方法可以在不显示窗口或标签的情况下打印html源代码?

问题描述:

所以我有这样的情况:有没有一种方法可以在不显示窗口或标签的情况下打印html源代码?

我执行AJAX后到返回我一些完整的HTML源控制器动作(即如果结果是在浏览器中查看,并用鼠标右键点击并选择查看源代码,所有的这就是返回的内容)。

现在我希望能够打印该HTML源代码,就好像在浏览器中显示的那样(即不是标记,而是用户实际会看到它是否显示在浏览器中)。

这必须在不打开新标签或窗口或弹出窗口的情况下完成。可能吗?如果是的话如何?

谢谢

用临时的,看不见的iframe怎么样?

var iframe = document.createElement('iframe'); 
iframe.style.display = 'none'; 
document.body.appendChild(iframe); 
iframe.contentDocument.open(); 
iframe.contentDocument.write(html_source_here); 
iframe.contentDocument.close(); 
iframe.contentWindow.print(); 
document.body.removeChild(iframe); 

是的,你可以通过创建一个DIV做到这一点,并通过调用innerHTML功能添加HTML。

document.getElementById('yourNewDIV').innerHTML = htmlReceived; 
+0

那么这不会帮助打印只是响应页面,因为你会打印父页面,响应HTML内部div。另外,父页面中的东西像样式和脚本可能会干扰div。 iframe可能对此更好。 –

+1

谢谢,实际上我下载了一些jquery,它可以很好地与“新div”的想法一起工作,并且可以和打印一起工作。这个jQuery的功能printElement()...所以你只是说$(“元素”)。printElement()... – DTR