Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将当前网页复制到新窗口中_Javascript_Printing - Fatal编程技术网

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();