如何使用Javascript弹出一个与父窗口几乎相同html的新窗口

如何使用Javascript弹出一个与父窗口几乎相同html的新窗口,javascript,popupwindow,Javascript,Popupwindow,我想从一个页面创建多个版本的打印友好页面。我正在考虑这样做:在原始页面上放置几个按钮,单击一个按钮将弹出一个新窗口,其html与其父窗口相同,但经过一些修改(例如,将某些DIV的display属性设置为none) 是否可以使用javascript执行此操作?您可以向当前页面的url传递一个附加参数,并在新窗口中打开它,如下所示: window.open(document.location.href + "?print=true"); <link rel="stylesheet" type

我想从一个页面创建多个版本的打印友好页面。我正在考虑这样做:在原始页面上放置几个按钮,单击一个按钮将弹出一个新窗口,其html与其父窗口相同,但经过一些修改(例如,将某些DIV的display属性设置为none)


是否可以使用javascript执行此操作?

您可以向当前页面的url传递一个附加参数,并在新窗口中打开它,如下所示:

window.open(document.location.href + "?print=true");
<link rel="stylesheet" type="text/css" media="print" href="myPrintStyles.css"/>
然后,您可以读取JavaScript中的URL参数,并进行必要的隐藏和CSS更改,以使文档打印友好

说到这里:为什么不使用一个只打印的CSS来为您实现这一点呢?那么,在代码中需要做的就是:

window.print()

在您的文档头中:

<link rel="stylesheet" href="yourcssfile.css" media="print" /> 


CSS将确保页面的外观符合您希望的打印方式。有关CSS打印的更多信息,请参阅。

是的,可以将javascript代码设置为这样,例如:

window.open('myPage.html')

getElementById('<someid>').style.display = none
window.open('myPage.html'))
getElementById(“”).style.display=none
但是,您可能需要查看CSS打印样式表,它允许使用CSS指定div隐藏等等。它的优点是不会强制用户打开弹出窗口,也不会在服务器上进行第二次页面加载。我发现这是一个开始的好地方

基本上,要添加打印样式表,需要设置如下链接:

window.open(document.location.href + "?print=true");
<link rel="stylesheet" type="text/css" media="print" href="myPrintStyles.css"/>

Thx Prutswonder!因为我需要从同一个非打印友好页面生成打印友好页面的几个不同版本(例如,一个隐藏了DIV A的页面,而另一个隐藏了DIV B的页面),所以我不能简单地将一个带有media=“print”的css文件附加到页面上。