window.print()打印页面指定内容(使用iframe保证原页面不失效)

使用window.print()时会出现两个问题:

(1)直接使用window.print() 打印的是整页内容-->无法实现打印指定区域

(2)打印时替换body中的内容,打印完成后再替换回来-->这样会导致原来页面事件失效

使用iframe即可打印指定内容,也可保证页面不失效,具体方法如下:

1、将打印的内容独立出来为一个print.html文件,并为页面添加打印事件

<!DOCTYPE html>
<html>
<head>
   ...
</head>
<body>
    ...打印内容
</body>
<script>
    function iframePrint(){    //添加打印事件
      window.print();
    }
</script>

2、在原页面中使用iframe引入打印页面

<!DOCTYPE html>
...
<iframe src="print.html" frameborder="0" id="printIframe" name="printIframe" ></iframe>
...
<button id="btn">打印</button>
...

3、打印事件绑定,在原页面中调用print.html中的打印事件(为方便表示这里使用jq绑定事件)

$("#btn").on("click",function(){
        document.getElementById(‘printIframe‘).contentWindow.iframePrint();
})

至此,点击打印即可实现iframe中内容的打印 ;

时间: 2024-12-28 21:54:51

window.print()打印页面指定内容(使用iframe保证原页面不失效)的相关文章

Web window.print() 打印

web打印 window.print() 我只给出比较有效的,方便的打印方法,有些WEB打印是调用ActiveX控件的,这样就需要用户去修改自己IE浏览器的Internet选项里的安全里的ActiveX,将它们全部启用,有些麻烦,翻了下网络, 下面的方法是可以直接打印,而不会去修改IE的Internet选项. window.print来打印页面,页面上别的元素也会被打印处理,页头页尾的格式也不好控制.• 常用方法:大部分情况会把查询的结果绑定到DataGrid上来,然后打印DataGrid.这种

js 打印网页指定内容

1 function doPrint() { 2 setTimeout(function() { 3 bdhtml=window.document.body.innerHTML; 4 sprnstr="<!--startprint-->"; 5 eprnstr="<!--endprint-->"; 6 7 prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17); 8 prnhtml=prnhtml.

fileupload页面跳转找不到原页面的解决方法

做了个上传图片的功能,之前做的全都对,完全可以实现,但是后来再弄的时候,只要FileUpload控件里面有字(选择了图片),再按button.它尽然不执行button1_click事件,直接页面跳转,然后显示找不到页面.但是FileUpload如果是空的,就会执行.这事怎么回事啊??? 自己搞定啦.是上传默认大小1M的原因.在配置文件里改好就行了 修改方法如下: 你可以更改上传文件的大小的限制      在web.config中的 <system.web> </system.web>

使用window.print实现网页打印

Window.print()方法用于在浏览器中打印当前窗口的内容,如果想要打印当前窗口中指定部分的内容的话需要其他的一些特殊的处理; Demo: <html> <head> <title>页面标题</title> <style type=”text/css” media=”print”> #button{ //隐藏网页中的打印按钮 display:none; } </style> <script type=”javscript”

打印网页中指定内容

正常打印整个网页只需要window.print(); 指定内容区域打印 var newcont = document.getElementById("printPage").innerHTML; var oldcont = document.body.innerHTML; document.body.innerHTML = newcont; //把打印的内容赋值给body window.print(); //打印指定的内容 document.body.innerHTML = oldco

(转)iframe刷新父页面

iframe页面是内嵌到父页面的,当点击iframe页面的服务器控件时,默认只刷新iframe页面,父页面是不会刷新的.若想刷新父页面,可以使用js来实现,如 1. parent.location.reload(); 这种方法会重新加载整个页面.但如果要在原页面的基础上传递参数,则可以使用下面的方法: 2.top.document.location.href='xxx.aspx?id=xx'. 但这两种方法都有一个共同的缺点,就是iframe内嵌页面的状态不会保存了,刷新后会重新回到第一次加载的

bootstrap选项卡页面中如何关闭当前选项卡及页面

再具体说一下现在的需求: 如上界面:在新闻发布界面有一个按钮,在点击按钮的时候我需要直接把这个打开的选项卡关闭 实现思路: 1)关闭选项卡对应的页面     2)去除上方选项卡      3)激活前一个选项卡 1)关闭选项卡对应的界面: 使用jquery我们很容易想到window.close()关闭当前界面,但是此时浏览器报了警告提示: Scripts may close only the windows that were opened by it 而且也并没有能够关闭我想关闭的界面,百度之后

关于页面打印window.print()的样式问题

当我们打印网页的时候.有时候会发现.打印出来的.跟网页上看到的样式的差别有点大.这其中可能有的问题是.样式问题. 当调用打印(window.print())方法时.打印机会在网页的样式中查找 @media print{}的样式,并适应到要打印的网页中. 所以 如果要打印的页面符合看到的页面效果,最好在写套 样式 <style type="text/css"> /* @media print 为打印时适应的样式表*/ @media print { body { font-si

打印web页面指定区域的三种方法

本文和大家分享一下web页面实现指定区域打印功能的三种方法,一起来看下吧. 第一种方法:使用CSS 定义一 个.noprint的class,将不打印的内容放入这个class内. 代码如下: <style media="print" type="text/css"> .noprint{visibility:hidden} </style>这 里是要打印的内容.<p class="noprint">这里是不打印的内