的Javascript
function printDiv() {
var k=document.getElementById("printDiv");
var el = document.createElement("iframe");
el.setAttribute('id', 'ifrm');
el.setAttribute('src', k.innerHTML);
el.print();
}
HTML:
<div id="printDiv">
<!-- content Here -->
</div>
<input type="button" value="Print" onclick="printDiv()"/>
代码无效。我没有得到任何打印对话框。请帮助我,因为我想使用Dynamic Iframe打印数据。感谢。
答案 0 :(得分:2)
HTML
<iframe name="print_frame" width="0" height="0" frameborder="0" src="about:blank">
</iframe>
的Javascript
function printDiv(divP) {
window.frames["print_frame"].document.body.innerHTML = $(divP).html();
window.frames["print_frame"].window.focus();
window.frames["print_frame"].window.print();
}
答案 1 :(得分:1)
将el.print();
替换为
window.frames.focus();
window.frames.print();
在JQuery中
function printDiv() {
$('#printDiv').empty().append('<iframe id="ifrm"></iframe>');
$('#ifrm').attr('width', '300px');
$('#ifrm').attr('heigh', '300px');
$('#ifrm').attr('src', 'http://www.amazon.in')
window.frames.focus();
window.frames.print();
}
小提琴演示
答案 2 :(得分:0)
iframe需要焦点,否则它仍将在IE中打印父帧。
function printIframe(id)
{
var iframe = document.frames ? document.frames[id] : document.getElementById(id);
var ifWin = iframe.contentWindow || iframe;
iframe.focus();
ifWin.printPage();
return false;
}
答案 3 :(得分:0)
此功能应该起作用
function printInFrame( UrlReport) {
function closePrint() {
document.body.removeChild(this.__container__);
}
function setPrint() {
debugger;
this.contentWindow.__container__ = this;
this.contentWindow.onbeforeunload = closePrint;
this.contentWindow.onafterprint = closePrint;
this.contentWindow.focus(); // Required for IE
this.contentWindow.print();
}
var oHiddFrame = document.createElement("iframe");
oHiddFrame.onload = setPrint;
oHiddFrame.style.position = "fixed";
oHiddFrame.style.right = "0";
oHiddFrame.style.bottom = "0";
oHiddFrame.style.width = "0";
oHiddFrame.style.height = "0";
oHiddFrame.style.border = "0";
oHiddFrame.src = UrlReport;
document.body.appendChild(oHiddFrame);
}
/* #endregion */
}