极品分享

利用window.print()打印页面指定区域

我们知道IE下用window.print()能自动动用打印功能,但是打印的是整个web页面,如果我们只想对页面中的某一部分进行打印,该怎么办呢?

  很简单,利用iframe将需要打印的部分以src的方式置于另一个独立页面中,然后在调用window.print()时,使用parent.iframnam.focus(),使得该iframe获得焦点,然后打印即可。

 

以下为引用的内容:
<iframe name="iframename" src="needprintdata.php"></iframe>
<a href="#" onClick="parent.iframename.focus();window.print();">打印</a>

<iframe name="iframename" src="needprintdata.php"></iframe>
<a href="#" onClick="parent.iframename.focus();window.print();">打印</a>

----------------------------------------------------------------------------------------------------------------------

相信许多人都用过WebBrowser做打印预览及打印,在使用中经常遇到的一个问题是当框架中一个页面用ExecWB(7,1)进行打印预览的时候发布并没有预览当前页面,而是所有框架的页面,其实在页面中执行ExecWB(7,1)相当于在 IE中点击“文件”---“打印预览”预览的是用户当前所看到的页面(所有框架页面),它并不会指定为调用ExecWB(7,1)页面,若要打印预览当前框架页面,可以将指定框架页面从新窗口打开,让新窗口只显示指定框架页面,再进行打印预览,那么问题就解决了。

<input type="button" style="display:none" id="preview" onclick="WebBrowser1.ExecWB(7,1)" />
<input type="image" src="http://www.cnblogs.com/img/button/print.gif" onclick="var newwin=window.open(window.location.href);newwin.attachEvent('onload',function(){newwin.document.getElementById('_ctl0_cntButton_cmdExit').style.display='none';newwin.document.getElementById('preview').onclick();});return false;" />

说明:

var newwin=window.open(window.location.href);//从新窗口打开当页面,并获取新窗口对象
 
newwin.attachEvent('onload',function(){newwin.document.getElementById('_ctl0_cntButton_cmdExit').style.display='none';newwin.document.getElementById('preview').onclick();});//为新窗口的onload添加一个function。调用隐藏button,执行ExecWB(7,1),这里可以直接执行ExecWB(7,1),不用像我这样多此一举

 return false;//这个很重要,避免回发,若回发则newwin对象消失,造成打印预览失效

2012-04-07 0 /
DIV&CSS
/
标签: 

评论回复

回到顶部