将当前网页复制到新窗口

Mar*_*tin 11 javascript printing

我需要能够将当前网页复制到新的弹出窗口以进行打印预览.页面上有一个带子项的网格,因此如果它们展开其中一行以查看子行,我需要在新窗口中显示它.

这可能吗?

我目前有弹出窗口打开同一页面,但没有任何行被展开.

Bol*_*wyn 9

也许这就是诀窍(在IE和Firefox中,而不是在Opera中.不知道WebKit):

var yourDOCTYPE = "<!DOCTYPE html..."; // your doctype declaration
var printPreview = window.open('about:blank', 'print_preview');
var printDocument = printPreview.document;
printDocument.open();
printDocument.write(yourDOCTYPE+
           "<html>"+
               document.documentElement.innerHTML+
           "</html>");
printDocument.close();
Run Code Online (Sandbox Code Playgroud)

(注之间的差异window.open()document.open()!)

但是,您将丢失所有自定义DOM内容,例如事件处理程序等.尽管如此,如果您只想复制'粘贴HTML,它可能会有效.