簡體   English   中英

USB 條碼掃描器打開瀏覽器的下載頁面

[英]USB Barcode scanner opens browser's downloads page

我正在嘗試將一些條形碼掃描到我的瀏覽器中包含的文本字段,但它會在任何瀏覽器(chrome、firefox,即)中打開下載頁面。 我猜有一些輸入相當於 CTRL + J 觸發瀏覽器打開下載頁面。

有人遇到過這個問題嗎? 有沒有辦法通過它(假設我的客戶不能更改他們的掃描儀配置,也不能更改瀏覽器配置)?

謝謝。

雖然發布答案為時已晚,但我希望這對將來的人有所幫助。

問題是由條形碼閱讀器發送的結束字符引起的。 我的條碼閱讀器的默認設置是輸入后發送CR+LF 不幸的是,這會在 chrome 中打開下載頁面。 對此的修復非常簡單,而不是配置掃描儀本身(這可能很棘手),您可以將以下腳本添加到您的頁面以忽略從條形碼掃描儀發送的結束字符:

<script>
  document.addEventListener('keydown', function(event) {
    if( event.keyCode == 13 || event.keyCode == 17 || event.keyCode == 74 )
      event.preventDefault();
  });
</script>

chrome 還為此打開了一個舊錯誤,但已關閉/未解決,因為這不是錯誤,而是更多的輸入配置問題。

您必須設置掃描儀。

Ctrl-J = 0x0A = Linefeed for Unix-like Systems

檢查您的掃描儀型號的手冊。 通常你可以找到一些改變你設置的條形碼,否則就是改變你的驅動程序或者你的驅動程序中有設置。

適用於 Google Chrome 的 AutoControl 快捷方式管理器

使用此擴展程序可以禁用瀏覽器的任何類型的快捷鍵,它既簡單又響應迅速。

一旦你添加了這個 chrome 擴展,它就會向你們展示教程。

(event.keyCode == 13 || event.keyCode == 17 || event.keyCode == 74)這樣的控制不會解決問題。 因為如果條碼值中有'J'字符,你將無法真正得到barcode結果。 我們嘗試額外添加e.ctrlKey控件。 但是這次我們只從條形碼中檢索一個字符。 通過js解決問題似乎很難。 也許最好的選擇是更改掃描儀設置。

問題可以通過檢查e.ctrlKey是否e.ctrlKey真來解決,然后我們可以忽略按鍵。 如果按下Ctrl鍵,則e.ctrlKeytrue

<script>
let data = ''

window.onload = function () {
     window.document.body.addEventListener('keydown', function(event){
        if( event.keyCode == 13 || event.keyCode == 16 ||  event.keyCode == 17 ) {
                event.preventDefault();
                    return;
                }

                if(event.ctrlKey) {
                    event.preventDefault();
                    return;
                }

        data += event.key
        console.log(data)
    });
}
</script>

通過使用此代碼,我們可以防止 chrome 導航到下載頁面。

//I managed to focus on exactly what was being sent by Chrome, and ignore just that:
var lastKeyCode = "";
document.addEventListener('keydown', function (event) {
    if (lastKeyCode == "ControlLeft" && event.code == "KeyJ")
        event.preventDefault();
    lastKeyCode = event.code;
});

我只有 chrome 有這個問題。 第一次成功拍攝后,Firefox 焦點會轉到谷歌搜索欄。 我有一個曼哈頓條碼閱讀器。 現在我使用 Web(也稱為頓悟)進行管理,它是唯一有效的方法,但它不是“常見的客戶建議”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM