首先:1、target.children[1].innerHTML代表的是要打印的元素内容;
2、document.getElementById(“print_content”).removeChild(f); 为了防止一直添加元素,所以在此处清除iframe元素操作;
3、创建iframe元素,这里要注意,ifame元素不可设置属性display:none,其必须存在页面中,可设置宽、高为0,来实现,如果设置display:none,在IE和360浏览器中打印的一直是父级页面;
4、聚焦:将当前打印焦点聚焦在iframe上,进行打印。
//打印功能
printOrder(e) {
var e = e || event;
var target = e.target || e.srcElement;
//获取当前页的html代码
var printhtml = target.children[1].innerHTML;
var f = document.getElementById('printf');
if (f) {
document.getElementById("print_content").removeChild(f);
}
var iframe = document.createElement('iframe');
iframe.id = 'printf';
iframe.style.width = '0';
iframe.style.height = '0';
iframe.style.border = "none";
document.getElementById("print_content").appendChild(iframe);
setTimeout(() => {
iframe.contentDocument.write(printhtml);
iframe.contentDocument.close();
iframe.contentWindow.focus();
iframe.contentWindow.print();
}, 100)
}