0

我有一个带有 iframe 的页面。iframe 显示在浏览器中,但是当我打印 previerw 或在 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%),如果使用 选择复选框,则可以有条件地隐藏 iframe display:none

4

1 回答 1

0

您可以在打印之前使用 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()
    });
});
于 2013-08-15T08:57:54.683 回答