在ie10中打印IFrame不起作用

时间:2013-09-25 15:59:20

标签: javascript html internet-explorer iframe printing

我正在尝试在IE10中打印动态创建的iframe。它既不会抛出错误也不会起作用。以下是我的代码。

function PrintVisitSlip() {
    var f = document.getElementById('frmPrintVisitSlip');
    var ifrm = document.createElement("iframe");
    ifrm.src = 'about:blank';
    ifrm.style.display = "none";
    document.body.appendChild(ifrm);
    var _styleCSS = '<style type="text/css">p{border-bottom: white;}.Head{font-size: 9pt;font-weight: bold;}'
        + 'td{border-bottom: 1px solid black;height: 8px;padding: 0px 0px 0px 0px;margin: 0 0 0 0;font-size: 7pt;padding: 1px 0 1px 0;}'
        + '.LC{width: 125px;text-align: left;padding-left: 4px;}.RC{width: 21px;text-align: right;padding-right: 3px;}'
        + '.LC1{width: 80px;text-align: left;padding-left: 4px;font-size: 6.5pt;}.RC1{width: 18px;text-align: right;}</style>';
    ifrm.contentWindow.document.open('text/html', 'replace');
    ifrm.contentWindow.document.write(_styleCSS + f.outerHTML);
    ifrm.contentWindow.document.close();
    var iw = ifrm.contentWindow || ifrm;
    iw.focus();
    iw.print();
    return false;
}

此代码在chrome中运行良好。但在IE10中,我没有看到任何打印窗口在点击打印按钮时填充。

1 个答案:

答案 0 :(得分:3)

尝试在readyState的{​​{1}}文档为iframe时打印,因为complete在IE下是异步的。此外,open.write会阻止打印框架,因此会打印整个窗口。

以下代码已通过IE10验证。它可能无法与其他浏览器一起使用。

ifrm.style.display = "none"