Javascript 将当前网页复制到新窗口中
我需要能够复制到一个新的弹出窗口打印预览当前网页。页面上有一个包含子行的网格,因此如果他们展开其中一行以查看子行,我需要在新窗口中显示这一点 这可能吗Javascript 将当前网页复制到新窗口中,javascript,printing,Javascript,Printing,我需要能够复制到一个新的弹出窗口打印预览当前网页。页面上有一个包含子行的网格,因此如果他们展开其中一行以查看子行,我需要在新窗口中显示这一点 这可能吗 当前,我使用弹出窗口打开同一页面,但所有行都没有展开。将打开/关闭行的状态编码为查询字符串格式(如“open=row1+row5+row10”),并将此字符串以url形式传递给新打开的窗口(如“host.com/blah.html?open=row1+row5+row10”)。在目标页面上,在onload函数中检查location对象并再次展开这
当前,我使用弹出窗口打开同一页面,但所有行都没有展开。将打开/关闭行的状态编码为查询字符串格式(如“open=row1+row5+row10”),并将此字符串以url形式传递给新打开的窗口(如“host.com/blah.html?open=row1+row5+row10”)。在目标页面上,在onload函数中检查location对象并再次展开这些行。您还可以使用JavaScript访问弹出窗口并调用诸如“hideRow(x)”之类的函数。当我回到家时,我会添加一个更好的例子(iPod touch在上面键入代码没有乐趣)也许这就解决了问题(在IE和Firefox中,而不是在Opera中。不知道WebKit):
var yourDOCTYPE=“您是否只是用display:none;隐藏/显示行?如何加载弹出页面?如果您再次重新加载页面,可以使用AJAX将数据集传递到目标页面
为每一行分配一个唯一的ID,对于展开的每一行,将该行的ID添加到数组中。当调用打印预览函数时,通过AJAX将该数组或对象作为数据成员传递,然后在加载页面后在onsuccess回调函数中展开适用的行。我尝试过这一点(使用jQuery)…但由于行的扩展是异步完成的,因此新页面不会获取html。我创建了一个JSFIDLE,至少在Firefox中可以工作:
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();