我正在尝试在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中,我没有看到任何打印窗口在点击打印按钮时填充。
答案 0 :(得分:3)
尝试在readyState
的{{1}}文档为iframe
时打印,因为complete
在IE下是异步的。此外,open.write
会阻止打印框架,因此会打印整个窗口。
以下代码已通过IE10验证。它可能无法与其他浏览器一起使用。
ifrm.style.display = "none"