我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以获得更多最新答案。
最佳答案
我的猜测是窗口具有焦点,但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
关于javascript - 是否有可能触发用于加载PDF文件的iframe的keypress事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13307468/