/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Spise Alt-S (IE)
Fra : Leif Neland


Dato : 11-02-10 09:48

Vi har et antal stregkodelæsere, der er sat op til at sende ALT-S før
stregkoden kommer.

På websiden vi bruger til at styre varelageret med er der sat accesskey="S",
så cursoren automatisk hopper til feltet, hvor stregkoden skal indlæses.

Men nu har jeg en formular, hvor der skal indlæses mange stregkoder.

Fjerner jeg accesskey="S", åbner IE dropdownmenuen "viS" når der scannes en
stregkode.
Sætter jeg accesskey="S" på alle stregkodefelterne, hopper cursoren ud af
det stregkodefelt man har sat den i, og videre til det næste stregkodefelt,
når der scannes en stregkode.

Jeg har prøvet med http://www.openjs.com/scripts/events/keyboard_shortcuts/#
der kan fange keyboard-shortcuts, og kalde en javascript-funktion. Men
selvom Alt+S fanges, så åbner IE alligevel dropdownmenuen "viS".

Ideer? Jeg vil helst ikke til at programmere alle stregkodelæserne om til at
sende et andet prefix...

Leif



 
 
Martin Larsen (11-02-2010)
Kommentar
Fra : Martin Larsen


Dato : 11-02-10 11:17

Leif Neland wrote:

> Ideer? Jeg vil helst ikke til at programmere alle stregkodelæserne om til at
> sende et andet prefix...

Firefox?

Martin



Martin Larsen (11-02-2010)
Kommentar
Fra : Martin Larsen


Dato : 11-02-10 11:18

Leif Neland wrote:

> Ideer? Jeg vil helst ikke til at programmere alle stregkodelæserne om til at
> sende et andet prefix...

Ku' du ikke lægge formularen (eller en mockup) online? Så er det nemmere
at afprøve mulige ideer.

Martin



Peter Farsinsen (11-02-2010)
Kommentar
Fra : Peter Farsinsen


Dato : 11-02-10 11:49

Leif Neland wrote:
> Jeg har prøvet med http://www.openjs.com/scripts/events/keyboard_shortcuts/#
> der kan fange keyboard-shortcuts, og kalde en javascript-funktion. Men
> selvom Alt+S fanges, så åbner IE alligevel dropdownmenuen "viS".

Har du sat 'propagate' til false?

- Peter

Leif Neland (11-02-2010)
Kommentar
Fra : Leif Neland


Dato : 11-02-10 12:24


"Leif Neland" <leif@neland.dk> skrev i en meddelelse
news:4b73c448$0$36582$edfadb0f@dtext01.news.tele.dk...
> Vi har et antal stregkodelæsere, der er sat op til at sende ALT-S før
> stregkoden kommer.
>
> På websiden vi bruger til at styre varelageret med er der sat
> accesskey="S", så cursoren automatisk hopper til feltet, hvor stregkoden
> skal indlæses.
>
> Men nu har jeg en formular, hvor der skal indlæses mange stregkoder.
>
> Fjerner jeg accesskey="S", åbner IE dropdownmenuen "viS" når der scannes
> en stregkode.
> Sætter jeg accesskey="S" på alle stregkodefelterne, hopper cursoren ud af
> det stregkodefelt man har sat den i, og videre til det næste
> stregkodefelt, når der scannes en stregkode.
>
> Jeg har prøvet med
> http://www.openjs.com/scripts/events/keyboard_shortcuts/# der kan fange
> keyboard-shortcuts, og kalde en javascript-funktion. Men selvom Alt+S
> fanges, så åbner IE alligevel dropdownmenuen "viS".

propagate er sat til false, gjorde ingen forskel.

det fungerer i firefox, men det er ikke muligt at få alle til at skifte,
specielt ikke før jeg har fået skiftet en html-editor ud med CKeditor, så
_det_ virker i firefox.


> Ideer? Jeg vil helst ikke til at programmere alle stregkodelæserne om til
> at sende et andet prefix...

Jeg løste det med at lave en onFocus='setaccess(this)' på stregkodefelterne.

function setaccess(felt) {
var felter=document.getElementsByTagName("input")
for (var n=0;n<felter.length;n++) {
if (felter[n].type=="text" && felter[n].accessKey=="S") {
felter[n].accessKey="";
}
};
felt.accessKey="S";
}

Fjern alle accessKey="S" og føj det til det felt, der er focus på, så Alt+S
ikke flytter focus.

Leif



Peter Farsinsen (11-02-2010)
Kommentar
Fra : Peter Farsinsen


Dato : 11-02-10 12:34

Leif Neland wrote:
>> Jeg har prøvet med
>> http://www.openjs.com/scripts/events/keyboard_shortcuts/# der kan fange
>> keyboard-shortcuts, og kalde en javascript-funktion. Men selvom Alt+S
>> fanges, så åbner IE alligevel dropdownmenuen "viS".
>
> propagate er sat til false, gjorde ingen forskel.

Nå, øv.

>> Ideer? Jeg vil helst ikke til at programmere alle stregkodelæserne om til
>> at sende et andet prefix...
>
> Jeg løste det med at lave en onFocus='setaccess(this)' på stregkodefelterne.
>
> function setaccess(felt) {
> var felter=document.getElementsByTagName("input")
> for (var n=0;n<felter.length;n++) {
> if (felter[n].type=="text"&& felter[n].accessKey=="S") {
> felter[n].accessKey="";
> }
> };
> felt.accessKey="S";
> }
>
> Fjern alle accessKey="S" og føj det til det felt, der er focus på, så Alt+S
> ikke flytter focus.

Hvor mange felter har du? Nu kender jeg ikke app'en eller brugen af den,
men at fedte rundt i DOM'en på den måde, hver gang fokus rammer et felt
lyder som noget, der kan give dårlig performance?!

- Peter

Leif Neland (11-02-2010)
Kommentar
Fra : Leif Neland


Dato : 11-02-10 14:40


"Peter Farsinsen" <fornavn@efternavn.dk> skrev i en meddelelse
news:4b73eb31$0$272$14726298@news.sunsite.dk...
>> Fjern alle accessKey="S" og føj det til det felt, der er focus på, så
>> Alt+S
>> ikke flytter focus.
>
> Hvor mange felter har du? Nu kender jeg ikke app'en eller brugen af den,
> men at fedte rundt i DOM'en på den måde, hver gang fokus rammer et felt
> lyder som noget, der kan give dårlig performance?!

Det er kun 5-10 felter højst, og der skal alligevel laves en ajax-request,
hver gang en stregkode er læst.

Fra stregkoden er læst til den er afleveret som simulerede tastetryk og der
submittes, når jeg at tælle "en-"
Derefter er svaret returneret og det næste felt har fået focus, når jeg at
tælle "og"

Altså under et halvt sekund, hvis jeg forsøger at tælle "enogtyve -
toogtyve" osv
Ajaxrequest har svartid på omkring 50 ms iflg firebug.

Leif



Peter Farsinsen (11-02-2010)
Kommentar
Fra : Peter Farsinsen


Dato : 11-02-10 16:02

Leif Neland wrote:
>> Hvor mange felter har du? Nu kender jeg ikke app'en eller brugen af den,
>> men at fedte rundt i DOM'en på den måde, hver gang fokus rammer et felt
>> lyder som noget, der kan give dårlig performance?!
>
> Det er kun 5-10 felter højst, og der skal alligevel laves en ajax-request,
> hver gang en stregkode er læst.

Fair nok. Det var ikke for at pege fingre. Det er bare den type
løsninger, som kan give problemer, hvis man bokser rundt i en 'stor' app.

> Fra stregkoden er læst til den er afleveret som simulerede tastetryk og der
> submittes, når jeg at tælle "en-"
> Derefter er svaret returneret og det næste felt har fået focus, når jeg at
> tælle "og"

Hvis det ikke volder problemer er det jo fint. Hvis du en gang får brug
for at tilføje 1000 felter til app'en er det nok en anden historie ;)

- Peter

Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste