FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Hej.
Jag har nu införskaffat mig en Magtek Sureswipe USB-ansluten HID-kompatibel magnetkortsläsare för att leka lite med men för senare användning i ett projekt jag arbetar med. Jag håller på att bygga ett javascript-program som skall fånga upp tecknen som läsaren "knappar in" på tangentbordet, då den emulerar ett tangentbord. Så, scriptet fungerar nu så att den bevakar varje knapptryckning. Om den nu skulle stöta på ett starttecken eller teckensekvens, tillexempel tecknet (%) (obs, ej paranteserna), så håller den inne på detta tecken och tar en tidsstämpel. Sen mäter den tiden tills nästa tecken matas in. Om tiden understiger 40 ms så triggas scriptet och går in i ett "inläsningsläge" där all data från "tangentbordet" lagras i en variabel tills [enter] dyker upp. Då avslutas inläsningsläget och något annat händer med den inlästa datan, tex behandlas av en funktion. Problemet är att när jag håller inne på starttecknet och det skulle visa sig att det går mer än 40 ms tills nästa tecken knappas in så har denna teckeninmatning gått förlorad. Jag kan alltså inte knappa in något på sidan som innehåller något av triggtecknen. ****** HÄR ÄR FRÅGAN!!! ****** Kan jag på något sätt tömma min hålla-tecken-i-väntan-på-nästa-tecken-stack som om de vore en riktig tangentbordstryckning med hjälp av javascript? Man kan även använda scriptet för att fånga streckkodsdata med samma metod, är det tänkt. Där är det dock lättare eftersom man kan programmera streckkodsscannern att skicka ett starttecken som tex sällan eller aldrig används av normala användare. |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Medlem
|
En streckkodsskanner är väl inget tagentbord?
Har gjort en liknande skript i javascript, men att man knappar in A så kommer det upp ett annat tecken osv. Hur lagrar du dina tecken? I en array? Isåfall är det ju bara att tömma arrayen eller ta bort senaste knapptryckning. Och vad menar du med starttecknet? Vad använder du, onkeypress, onkeydown eller onkeyup? Fungerar ditt skript i alla webbläsare eller satsar du bara på en webbläsare? |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
Det beror ju på hur din sida ser ut, men om du vet vilket fält som har fokus när teckeninmatningen börjar så finns det ju en väldigt enkel lösning: sätt fältets value till innehållet i din stack.
Förstår du hur jag tänker? |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Mycket flitig postare
|
I vilket läge använder en vanlig användare %-tecknet ??
Jag tycker din metod låter konstig, jag har gjort en del egna drivrutiner och program till MagTeks produkter, men har aldrig behövt göra på ett sätt som du beskriver. |
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Medlem
|
Hej.
Jag kanske har varit otydlig i mitt första inlägg: Allmänt: Det är för en webbläsare som jag skriver programmet. Kurdix: Streckkodsläsare och magnetkortsläsare är ibland utformade så att de låtsas att de är ett tangentbord som knappar in de tecken som man läser in. Tillexempel kan man programmera streckkodsläsaren så att den skickar tangentkoden för "F12" innan koden kommer. Eftersom F12 oftast inte används i webbläsare som jag stött på så kan man använda den för att webbsidan skall fånga upp inläsningen utan att skriva ut den i det textfält som råkar vara valt för tillfället, för att istället utföra en specifik uppgift. MMC: Bra idé. Tänkte inte på det. Det borde ju kunna fungera. Får forska i hur man tar reda på vilket fält som för tillfället är fokuserat men det tar väl inte lång tid att finna ut (om du inte genast ger mig svaret, förstås :] ). SimonP: Vill du dela med dig av metoderna du använder? Jag använder gärna enklare metoder när det står till buds. Min nyfikenhet stillas dock inte så enkelt! |
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Mycket flitig postare
|
Citat:
|
|||
![]() |
![]() |
Svara |
|
|