iframe实现局部打印

  网页中用到jquery.dialog,需要把dialog里面的内容打印出来,开始直接用window.print(),因为我电脑没有连打印机,也没有测试,在项目演示的时候一个同事就打印出来,看效果,太囧了,打印出来的不是div里面的内容,而是当前屏幕所能看到的内容。在网上查了很多资料,有的看不懂,有的尝试了效果却不对,最后自己想了一个办法,用iframe来实现。

  第一步:要在页面中加一个iframe,把frameborder、height、width都设置成0,这样页面上就不会看到此iframe了。如:

    <iframe id="fra" name="fra" src="print_model.html" frameborder=0 height=0 width=0></iframe>

  第二部:在当前页面的js中,获取到这个iframe对象

    var frameObj = $(document.getElementById('fra').contentWindow.document.body);

  第三部:把要打印的内容放到iframe的body里面

    frameObj.html(content);

    注:如果要对iframe里面元素操作的话,需要获取到内容:var contentObj = frameObj.contents();再用contentObj操作

  第四部:打印

    document.getElementById('fra').contentWindow.print();

原文地址:https://www.cnblogs.com/redangel/p/2935494.html