带有iframe的页面打印空白iframe

page with iframes prints blank iframes

本文关键字:iframe 打印 空白 带有      更新时间:2023-09-26

我有一个包含iframe的页面。iframe显示在浏览器中,但当我在上一页打印或在IE8中打印时,有时部分或全部框架都是空白的。我的意思是框架和div在那里,但没有内容。

帧区域的结构如下:

<div id="container">
    <div id="frames">
        <iframe src="about:blank" name="FRAME0"></frame>
    </div>
</div>

表单将iframe作为目标。

有时,当使用纸张尺寸C时,它们会打印,但大多数情况下不会打印。通常前两个iframe打印出来,我注意到它们在同一页上。

我用来打印的功能是:

function printNow() {
    print();
}

我试过focus(),然后print(),self.print()、window.print()、top.window.print(

请告诉我这是IE8的问题,还是我可以用javascript解决的问题。我被迫只使用javascript。从事该项目的人有一个类似的IE7版本,他们没有遇到这个问题,因为iframe有一个pdf文件。有css应用于iframe(即width: 100%),如果使用display:none选中复选框,则可以有条件地隐藏iframe。

您可以在打印之前使用html2canvas来渲染iframe

$('iframe').each(function() {
    var iframe = $(this);
    html2canvas(iframe[0].contentDocument.body, {
        onrendered: function(canvas) {
            var wrapper = iframe.hide().wrap('<div/>').parent().css({
                position: 'relative'
            });
            $(canvas).css('postion', 'absolute').appendTo(wrapper);
        },
        width: iframe.width(),
        height: iframe.height()
    });
});