我有一个按钮,可以将html页面的内容复制到新页面,然后调用浏览器打印功能。
唯一的问题是它没有复制到< IMG>
JS:
function PrintElem(elem)
{
Popup($(elem).html());
}
function Popup(data)
{
var mywindow = window.open('', 'my div', 'height=600,width=800');
mywindow.document.write('<html><head><title>Hire Form</title>');
mywindow.document.write('</head><body >');
mywindow.document.write(data);
mywindow.document.write('</body></html>');
mywindow.document.close(); // necessary for IE >= 10
mywindow.focus(); // necessary for IE >= 10
mywindow.print();
mywindow.close();
return true;
}
html Img:
<img src="../../../Corp/SiteAssets/Intranet%20Branding/Logo.png" alt="Test"></img>
修改 当我将img url更改为其完整URL时,它可以在IE和Firefox中使用,但不能使用chrome。
答案 0 :(得分:0)
我可以明白你的观点。
请参阅https://jsfiddle.net/j34aeafp/。
function PrintElem(elem) {
Popup('asdfsdf <img id="needImage" src="//placehold.it/64/fff000" alt="Test"></img>');
}
function Popup(data) {
var mywindow = window.open('', 'my div', 'height=600,width=800');
mywindow.document.write('<html><head><title>Hire Form</title>');
mywindow.document.write('</head><body >');
mywindow.document.write(data);
mywindow.document.write('</body></html>');
mywindow.document.close(); // necessary for IE >= 10
mywindow.focus(); // necessary for IE >= 10
// listen img onload then call print
mywindow.document.getElementsByTagName('img')[0].onload = function(){
mywindow.print();
mywindow.close();
};
return true;
}
PrintElem();
答案 1 :(得分:0)
您可以将onload事件添加到正文中,这样您就不需要为每个图像元素修改或添加属性,如下所示。
function Popup(data)
{
var mywindow = window.open('', 'my div', 'height=600,width=800');
mywindow.document.write('<html><head><title>Hire Form</title>');
mywindow.document.write('</head><body onload="window.print(); window.close();">');
mywindow.document.write(data);
mywindow.document.write('</body></html>');
mywindow.document.close(); // necessary for IE >= 10
mywindow.focus(); // necessary for IE >= 10
return true;
}