如何使用Javascript弹出一个新窗口,其中包含与其父窗口几乎相同的html
问题描述:
我想从一个页面创建多个版本的易于打印的页面。我正在考虑这样做:在原始页面上放置几个按钮,然后单击一个按钮将会弹出一个新的窗口,它具有与其父窗口相同的HTML,但有一些修改(例如,将某些DIV的显示属性设置为没有)。如何使用Javascript弹出一个新窗口,其中包含与其父窗口几乎相同的html
有可能使用JavaScript来做到这一点?
答
你可以传递到当前页面的URL附加参数,并在新窗口中打开它,像这样:
window.open(document.location.href + "?print=true");
然后,您可以读取JavaScript中的URL参数,并做必要的隐藏和CSS改变使文档易于打印。
说到其中:为什么不使用只为您打印的只能打印的CSS?然后,您需要在代码中执行的操作是:
window.print();
,并在文档HEAD:
<link rel="stylesheet" href="yourcssfile.css" media="print" />
而CSS将确保页面看起来你所希望的方式来打印。有关在CSS中打印的更多信息,请参阅this article。
答
是的,有可能设置JavaScript代码到这一点,是这样的:
window.open('myPage.html')
getElementById('<someid>').style.display = none
但是,您可能想看看CSS打印样式表,其中允许使用CSS来指定DIV hidings和诸如此类的东西。它的优点是不会强制用户打开弹出式窗口,也不会在服务器上执行第二次加载页面。我发现this article是一个开始的好地方。
基本上,添加打印样式表你设置一个链接是这样的:
<link rel="stylesheet" type="text/css" media="print" href="myPrintStyles.css"/>
对不起,没看到你的帖子。 – ig0774 2010-03-27 23:29:00
Thx Prutswonder!因为我需要从同一个非打印友好的页面生成几个不同的版本(比如说一个页面,DIV A隐藏,另一个页面隐藏DIV B),我不能简单地将一个css文件与媒体=“打印”到页面。 – Ethan 2010-03-28 01:23:50