我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/

10-11 04:27
查看更多