Javascript 带有iframes的页面打印空白iframes

Javascript 带有iframes的页面打印空白iframes,javascript,internet-explorer,iframe,printing,Javascript,Internet Explorer,Iframe,Printing,我有一个带有iframes的页面。iFrame会在浏览器中显示,但当我打印previerw或在IE8中打印时,有时部分或所有的框架都是空白的。我的意思是框架和div在那里,但是没有内容 框架区域的结构如下所示: <div id="container"> <div id="frames"> <iframe src="about:blank" name="FRAME0"></frame> </div> <

我有一个带有iframes的页面。iFrame会在浏览器中显示,但当我打印previerw或在IE8中打印时,有时部分或所有的框架都是空白的。我的意思是框架和div在那里,但是没有内容

框架区域的结构如下所示:

<div id="container">
    <div id="frames">
        <iframe src="about:blank" name="FRAME0"></frame>
    </div>
</div>
我试过focus()然后是print()、self.print()、window.print()、top.window.print()等等


请告诉我这是IE8的问题还是我可以用javascript克服的问题。我被迫只使用javascript。参与该项目的人有一个类似的IE7版本,如果iframe没有pdf文件,他们不会遇到这个问题。有css应用于iframe(即,
宽度:100%
),如果使用
显示:无

选中复选框,则可以有条件地隐藏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()
    });
});
$('iframe')。每个(函数(){
var iframe=$(此值);
html2canvas(iframe[0]。contentDocument.body{
onrendered:函数(画布){
var wrapper=iframe.hide().wrap(“”).parent().css({
位置:'相对'
});
$(canvas.css('position','absolute').appendTo(wrapper);
},
宽度:iframe.width(),
高度:iframe.height()
});
});

您可以尝试在打印前使用html2canvas渲染iFrame。我将如何开始这样做?我不熟悉html2canvas。这似乎是一个独特的形式和内容的绘画很多。
$('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()
    });
});