我99%肯定这是不可能的,但我会问,只是有人有想法。
一点背景:
我的用户使用条形码扫描仪从系统中托收物品。每个条形码都是一个前面带有“^”的ID号(因此系统可以判断是否有人正在扫描而不仅仅是键入)。当他们扫描每个条形码时,页面自动下载PDF(到iframe),该PDF被打印到标签上并粘在盒子上。然后他们转到下一个等等。
自动打印是通过附加到文档的onkeypress
事件处理的。这是被调用的函数: -
function quickEntry() {
if (String.fromCharCode(event.keyCode) == "^") {
if (!scanning) {
grn = '';
scanning = true;
setTimeout('addBarcode()', 1000);
}
else {
alert("Still processing previous GRN.");
}
}
else
grn += String.fromCharCode(event.keyCode);
}
问题:
问题是,在打印完第一个标签后,用户需要点击主html文档的某个区域才能再次扫描条形码,即使窗口本身仍有焦点。
修改
任何到达此问题的人都会查看this question以获取更多最新答案。
答案 0 :(得分:2)
我的猜测是窗口有焦点,但input
元素失去焦点(焦点可能已移至iframe
或其中的某个元素。)
To find out which element has stolen your focus, you can use document.activeElement
并更改它的CSS样式以使其更突出或使用CSS和:focus
选择器。
要解决您的问题,请使用JavaScript打印iframe
,然后将焦点强制转移回input
元素。
这可能涉及主页与iframe
之间的JavaScript调用;有answers on this site如何做到这一点。
[编辑] 有几种方法可以将PDF嵌入到网页中。当您使用iframe
时,PDF插件将控制浏览器窗口(因此它可以响应键盘和鼠标事件)。
尝试使用<object>
(pdfobject.com/markup/index.php)加载PDF,而不是使用iframe