Jan Carstens: Eventhandler Barcode-Scanner

Moin,

ich hab' mal ne Frage für die Javascript-Experten.

Zulange habe ich schon nach einer Lösung gesucht und versuche
es jetzt mal auf diesem Weg.

Ich habe ein Input(type=text)-Feld auf einer Seite. Dieses bekommt
automatisch beim Aufruf den Focus.

In dieses Feld wird ein Barcode eingescannt. Im Anschluß an die
Eingabe soll sofort (ohne weiteres Eingreifen des Users) ein neues
Fenster geöffnet werden.

Nun zu meiner Frage:

Gibt es eine Möglichkeit diese Eingabe abzufangen? Soweit ich gesehen
und probiert habe, geben es die normalen Java-Script Eventhandler nicht
her.

Viele Grüße und vielen Dank für Eure Mühe schonmal im Vorraus.

Jan

  1. In dieses Feld wird ein Barcode eingescannt. Im Anschluß an die
    Eingabe soll sofort (ohne weiteres Eingreifen des Users) ein neues
    Fenster geöffnet werden.

    hier fehlen alle wichtige Informationen. Was heißt, in das Feld wird ein Barcode eingescannt? Mir ist nicht bekannt, dass eine HTML Seite irgendwas scannen kann und schon gar kein Formularfeld, d.h. du musst auf deiner Seite irgendwas haben, was irgendwas macht.

    Struppi.

    1. hier fehlen alle wichtige Informationen. Was heißt, in das Feld wird ein Barcode eingescannt? Mir ist nicht bekannt, dass eine HTML Seite irgendwas scannen kann und schon gar kein Formularfeld, d.h. du musst auf deiner Seite irgendwas haben, was irgendwas macht.

      Struppi.

      Das muss nicht unbedingt sein.
      Der Scanner ist nichts anderes als ein Eingabegerät.
      Er legt den Fokus auf sein Imputfeld und wenn der Scanner etwas erfasst, wird das automatisch eingetragen. Wie wenn er die Tastatur dazu benutzt hätte. Da ist normalerweiße nichts weiter notwendig.

      Gruß

      1. Hi,

        Das muss nicht unbedingt sein.
        Der Scanner ist nichts anderes als ein Eingabegerät.
        Er legt den Fokus auf sein Imputfeld und wenn der Scanner etwas erfasst, wird das automatisch eingetragen. Wie wenn er die Tastatur dazu benutzt hätte. Da ist normalerweiße nichts weiter notwendig.

        Wie kommuniziert denn ein lokal an einen Rechner angeschlossenes Gerät mit einer HTML Seite bzw. mit dessen Input field?
        Das geht doch nur über ActiveX oder Java.

        Feuere das Event doch einfach, sobald das Feld beschrieben wird.

        Irgendwo muss doch stehen:

        inputfield.value = text;

        Gruß!

      2. hier fehlen alle wichtige Informationen. Was heißt, in das Feld wird ein Barcode eingescannt? Mir ist nicht bekannt, dass eine HTML Seite irgendwas scannen kann und schon gar kein Formularfeld, d.h. du musst auf deiner Seite irgendwas haben, was irgendwas macht.

        Struppi.

        Bitte nicht alles zitieren, nur das worauf du antworten möchtest, Danke.

        Das muss nicht unbedingt sein.
        Der Scanner ist nichts anderes als ein Eingabegerät.

        Ja schön, aber es gibt kein HTML Element <scanner> oder?

        Er legt den Fokus auf sein Imputfeld und wenn der Scanner etwas erfasst, wird das automatisch eingetragen. Wie wenn er die Tastatur dazu benutzt hätte. Da ist normalerweiße nichts weiter notwendig.

        Dann nutzt du offensichtlich irgendein Tool, das wir natürlich nicht kennen, dass du aber auch nicht preisgeben möchtest, dessen Funktionsweise du entweder nicht verstehst oder wir nicht Wissen dürfen.

        So können wir dir leider nicht helfen.

        Struppi.

        1. Hi Struppi,

          Ja schön, aber es gibt kein HTML Element <scanner> oder?

          Es gibt auch kein HTML Element <tastatur> - trotzdem kannst du mit deiner Tastatur in alle dafür vorgesehen Eingabefelder Werte eingeben. Ein Barcode-Scanner ist kaum etwas anderes. So wie ich das verstanden habe (und wenn ich mich recht an mein Praktikum erinnere, wo ich mal mit so einem Teil gearbeitet habe), simuliert der Barcode-Scanner einfach nur den gescannten Barcode als Tastatureingabe.

          Und damit, Jan, gibt es auch keine Möglichkeit die Eingabe des Barcode-Scanners von einer normalen Tastatureingabe zu unterscheiden. Verwende also OnKeyUp etc. und prüfe ob die Eingabe bereits vollständig erfolgt ist (haben Barcodes immer eine fixe Länge?). Bei vollständig erfolgter Eingabe kannst du dein Formular dann abschicken und weiterverarbeiten.

          Viele Grüße,
            ~ Dennis.

          1. Ja schön, aber es gibt kein HTML Element <scanner> oder?

            Es gibt auch kein HTML Element <tastatur> - trotzdem kannst du mit deiner Tastatur in alle dafür vorgesehen Eingabefelder Werte eingeben. Ein Barcode-Scanner ist kaum etwas anderes.

            Ich weiß nichjt ob hier lauter Barcodescanner Experten sind, ich hab keine Ahnung wie ein Scanner mit einer Internetseite kommuniziert, keines meiner Geräte kann das, also wenn hier jemand wirklich Hilfe haben will sollte er erklären wie das genau läuft.

            So wie ich das verstanden habe (und wenn ich mich recht an mein Praktikum erinnere, wo ich mal mit so einem Teil gearbeitet habe), simuliert der Barcode-Scanner einfach nur den gescannten Barcode als Tastatureingabe.

            Woher soll das jemand Wissen, der nicht zufällig ein Praktikum in einer Firma mit einer solchen Software gemacht hat?

            Allein schon Barcode - das suggeriert bei mir einen Schwarz-weissen Strichcode, dieser Code entspricht dem Zahlen-/Buchstaben Code der darunter steht? Wenn ja, muss man das erstmal Wissen.

            Die nächste Frage ist, wie kommuniziert der Scanner mit einer HTML Seite?
            Ohne dieses Wissen können wir natürlich weiterhin lustige Ratespiele machen.

            Struppi.

            1. Hi Struppi,

              Woher soll das jemand Wissen, der nicht zufällig ein Praktikum in einer Firma mit einer solchen Software gemacht hat?

              Hehe, das hätte der OP sicherlich dazusagen können - stimmt. Übrigens sagt aber auch Wikipedia zu Barcodelesegeräten:

              „Eine häufige Verwendung ist das Einschleifen in die Tastaturanschlussleitung
                des Computers meist mittels Zwischenstecker (Tastatur/Wedge-Emulation). Das hat
                den Vorteil, dass keinerlei Software-Anpassungen notwendig sind, da der Computer
                gar nicht erkennt, ob es sich um eine manuelle oder um eine eingelesene Dateneingabe
                handelt. Zu beachten sind lediglich Keyboardnationalität und verwendetes
                Betriebssystem.”

              So ein Scanner simuliert also wirklich nur (wie auch Patrick schon sagte) eine Tastatureingabe.

              Allein schon Barcode - das suggeriert bei mir einen Schwarz-weissen Strichcode, dieser Code entspricht dem Zahlen-/Buchstaben Code der darunter steht? Wenn ja, muss man das erstmal Wissen.

              Nun ja, mit Strichen kann ein Computer wohl kaum was anfangen. Zahlen sind da schon wesentlich praktikabler - wie so ein Strichcode funktioniert, erläutert übrigens auch wieder Wikipedia. ;-)

              Viele Grüße,
                ~ Dennis.

              1. Woher soll das jemand Wissen, der nicht zufällig ein Praktikum in einer Firma mit einer solchen Software gemacht hat?

                Hehe, das hätte der OP sicherlich dazusagen können - stimmt. Übrigens sagt aber auch Wikipedia zu Barcodelesegeräten:

                Danke sehr interessant.

                Ist aber schon nervig, zwei sehr lange wikipedia Artikel lesen zu müssen, damit man versteht worauf der OP hinaus will. Wobei es letztlich nur um Probleme mit Keyboard Events geht.

                Struppi.

  2. Hi Jan,

    du kannst den Scanner normalerweise so einstellen, dass er noch eine "Zusatzfunktion" nach dem Scannen und schreiben erledigt.
    Also Scannen->Eintragen->und neu: Return oder ähnliches.
    Diese Funktion kannst du ja via JS abfangen und die Daten aus deinem Feld weiterverarbeiten.

    @all: der Scanner sendet nur eine Tastenfolge an den Rechner, wie eine Tastatur! Was dann passiert -> egal!

    Grüße
    Patrick

    1. @all: der Scanner sendet nur eine Tastenfolge an den Rechner, wie eine Tastatur! Was dann passiert -> egal!

      Es scheinen wirklich viele ein Praktikum in der Firma gemacht zu haben ;-)

      Dann existieren die Events onkeydown oder onkeyup oder onclick, da kann sich der OP dann einen aussuchen. wobei mich dann diese Aussage wundert:

      Soweit ich gesehen und probiert habe, geben es die normalen Java-Script Eventhandler nicht her.

      Struppi.

    2. Hellihello

      will heißen: Scanner hängt mit Kabel am Rechner, Editor ist geöffnet, führe Scanner über Barcode an CD, im Editor erscheint der Code in Ziffernform?

      Dank und Gruß,

      frankx

      --
      tryin to multitain  - Globus = Planet != Welt
      1. will heißen: Scanner hängt mit Kabel am Rechner, Editor ist geöffnet, führe Scanner über Barcode an CD, im Editor erscheint der Code in Ziffernform?

        Yep! Genauso funktioniert das.
        Was dann damit (mit dem geschriebenen) gemacht wird, ist unabhängig davon, dass es ein Scanner eingegeben hat. Man hätte genauso gut per Tastatur in den Editor schreiben können.

        Gruß

        1. Hellihello

          Yep! Genauso funktioniert das.

          Und gibt es beim Kauf etwas zu beachten? Bzw. gibt es die schon in ganz schlichter Ausstattung oder ist das immer noch 400 Aufwärts? Und tragbar auch?

          Dank und Gruß,

          frankx

          --
          tryin to multitain  - Globus = Planet != Welt
          1. Und gibt es beim Kauf etwas zu beachten? Bzw. gibt es die schon in ganz schlichter Ausstattung oder ist das immer noch 400 Aufwärts? Und tragbar auch?

            Bzgl. den Kosten kann ich dir leider keine Auskunft geben, da ich in dieser Hinsicht selber nicht informiert bin.
            Eine Suche z.b. bei Google sollte da weiterhelfen.

            Aber tragbar(W-Lan) gibt es die durchaus auch zu kaufen.

            Gruß

          2. Hallo.

            Und gibt es beim Kauf etwas zu beachten?

            Lediglich ungefähr so viel wie bei Autos.

            Bzw. gibt es die schon in ganz schlichter Ausstattung oder ist das immer noch 400 Aufwärts? Und tragbar auch?

            Die Frage ist, wofür die die Geräte benötigst -- und nein, "zum scannen von Barcodes" ist keine hilfreiche Antwort auf diese Frage.
            Neben den stationären Geräten, die weder tragbar, noch für kleines Geld zu haben sind, gibt es durchaus tragbare Geräte, und zwar im Wesentlichen folgende Klassen:

            • Handscanner für Kassensysteme mit Tastaturanschluss. Diese Geräte haben meist außer dem Abzugsknopf keine weiteren Bedienelemente. Geeignet sind sie für eine, gleichmäßig helle, staubarme Umgebung, normale klimatische Verhältnisse und Lesedistanzen von wenigen Zentimetern. Die zu verarbeitenden Barcodes beschränken sich meist auf die gängigen eindimensionalen Standards. Dafür sind die Geräte sehr preisgünstig.
            • Handscanner für den industriellen Einsatz. Diese Geräte sind sichtlich robust konstruiert, verfügen häufig über Funktionstasten, Statusleuchten und grafische Anzeigen und funktionieren auch unter widrigen Umständen und auf mehrere Meter mit allen erdenklichen eindimensionalen Barcodes. Es gibt sie zum Anschluss an serielle Schnittstellen und mit Funkmodulen, die aber nicht zwangsläufig kompatibel zu handelsüblichen WLAN-Komponenten sein müssen. Insbesondere der Marktführer Symbol, inzwischen eine Motorola-Tochter, ging hier gern eigene Wege, aber dafür gelten dessen Geräte auch als besonders zuverlässig -- und teuer.
            • in einen PDA integrierte Scan-Module, gern auf Basis von WindowsCE oder PalmOS. Man kennt diese Geräte von Paketboten, und wenn man weiß, wie die mit Paketen hantieren, weiß man auch, was diese Geräte auszuhalten vermögen. Ohne an die Bedürfnisse des Dienstleisters angepasste Software, die zum Beispiel auch die Kommunikation mit den in dieser Branche noch sehr verbreiteten IBM AS/400 übernimmt, sind diese Geräte aber trotz ihres hohen Preises nahezu wertlos. Gelesen werden alle eindimensionalen und manchmal auch zweidimensionale Barcodes.
            • Mobiltelefone mit Kamera und OCR-Software. Die Software, zum Beispiel von ABBYY, läuft unter anderem auf vielen Java-tauglichen Plattformen und ist als einzige Lösung zumindest theoretisch in der Lage, auch mehrfarbige und zweidimensionale Barcodes zu erkennen. Die Qualität bleibt aber insgesamt noch weit hinter dedizierten Barcode-Scannern zurück, woran sich erst mit besseren Kameras und schnelleren Chips etwas tun dürfte. Prinzipiell wird diesen Geräten aber das größte Potential nachgesagt.
              MfG, at
  3. Hi,

    da das ganze in einem Formular/Input-Feld abläuft, sollte doch eigentlich irgendwo ein "change"-Handler (> onchange) existieren.

    Nebenbei finde den ganzen Thread mal ganz interessant, wie das so funktioniert mit dem Scanner.

    gruß
    peter

    1. da das ganze in einem Formular/Input-Feld abläuft, sollte doch eigentlich irgendwo ein "change"-Handler (> onchange) existieren.

      Tja, der OP hat sich wohl aus dem Thrad ausgeklingt. onchnage dürfte aber nicht klappen, da dieser erst beim verlassen des Feldes feuert, weiter kommen müsste er eher mit den schon hier erwähnten onkeydown bzw. onkeyup

      Nebenbei finde den ganzen Thread mal ganz interessant, wie das so funktioniert mit dem Scanner.

      Ich ebenfalls. Da es ja nicht unbedingt üblich ist das jeder damit zu tun hat, wie es der OP offensichtlich dachte, mir war das alles neu.

      Struppi.