use*_*254 7 javascript printing google-chrome
如果用户点击缩略图,我有一个旧的JavaScript代码来打印图像.它过去工作得很好,但最近(仅限Chrome!)预览中有一个空白页面.
以下是JsBin中的演示:http://jsbin.com/yehefuwaso/7 单击打印机图标.现在在Firefox中试试吧; 它将按预期工作.
Chrome:41.0.2272.89米
Firefox:30.0,36.0.1
function newWindow(src){
win = window.open("","","width=600,height=600");
var doc = win.document;
// init head
var head = doc.getElementsByTagName("head")[0];
// create title
var title = doc.createElement("title");
title.text = "Child Window";
head.appendChild(title);
// create script
var code = "function printFunction() { window.focus(); window.print(); }";
var script = doc.createElement("script");
script.text = code;
script.type = "text/javascript";
head.appendChild(script);
// init body
var body = doc.body;
//image
doc.write('<img src="'+src+'" width="300">');
//chrome
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
win.printFunction();
} else {
win.document.close();
win.focus();
win.print();
win.close();
}
}
Run Code Online (Sandbox Code Playgroud)
看起来它试图在加载之前进行打印,例如,通过将链接作为数据 URI或Blob<img>打开,将调用移动到加载事件的事件处理程序中打印window
var code = '\
<html>\
<head>\
<title></title>\
<script>\
function printFunction() {\
window.focus();\
window.print();\
window.close();\
}\
window.addEventListener(\'load\', printFunction);\
</script>\
</head>\
<body><img src="'+src+'" width="300"></body>\
</html>';
window.open('data:text/html,' + code, '_blank', 'width=600,height=600');
Run Code Online (Sandbox Code Playgroud)
不要忘记您可能需要对标签进行HTML 编码code
您可能可以只监听负载,但如果您做过任何比尝试打印单个图像更复杂的事情,<img>您可能会发现它将来会再次损坏
doc.write('<img onload="printFunction();" src="'+src+'" width="300">');
Run Code Online (Sandbox Code Playgroud)
printFunction所有浏览器的打印功能在哪里
| 归档时间: |
|
| 查看次数: |
9219 次 |
| 最近记录: |