ugrás a tartalomhoz

accesskey behavior

Anonymous · 2005. Nov. 24. (Cs), 16.58
Sziaztok!

Találtam egy ilyen kódot:

ACCESSKEY.HTC:

<public:component>
   
   <public:attach event="onfocus" onevent="focusHandler()">
   
   <script type="text/javascript">
         function focusHandler()
      {
         if(element.accessKey && event.altKey)
         {
            element.click();
         }
      }
      </script>   
   
</public:component>
És a CSS fájlba:

body {
   behavior:url(accesskey.htc);
   }
De nem működik, mit változtassak meg?
Az ACCCESSSKEY-t mindenképpen használni akarom.
 
1

Ezt ne!

Jano · 2005. Nov. 24. (Cs), 19.26
Ha jól értem akkor ez a script azt csinálja, ha megkapja egy elem a focust akkor egyből klikkel is! Ez baromira nem jó abban az esetben ha valaki billentyűzettel irányít és lépeget a tabbal, mert az első linknél szépen követni fogja a linket!
2

Nem

Bártházi András · 2005. Nov. 24. (Cs), 20.47
Ez azt csinálja/ná, hogy ha fókuszt kap egy elem, megvizsgálja, annak az elemnek van-e accesskey tulajdonsága, és volt-e alt billentyű lenyomva. Ha mindkettő igen, akkor feltételezi, hogy a fókuszt a gyorsbillentyű lenyomására kapta meg, és ráklikkel az elemre.

-boogie-
4

Igazad van

Jano · 2005. Nov. 25. (P), 00.00
Igazad van, siettem és elnéztem. Átgondolva a hiba akkor az, hogy ezt a behaviort a body elemhez rendeled hozzá, vagyis egyedül a body.onfocus eseménykor fut le. A bodyhoz meg nem nagyon rendel az ember accesskey-t.

Minden olyan elemhez kell hozzárendelni aminek adtál accesskeyt. (Ez szépen megoldható lenne az attributúm létezése alapján történő kiválasztóval *[accesskey] de ezt az IE nem támogatja.)
3

Így

Bártházi András · 2005. Nov. 24. (Cs), 20.52
Amit írsz, az eleve egy Internet Explorer specifikus megoldás, amit nem javaslok. Viszont a "diszkrét" JavaScript kiváló eszköz a feladatra, erről van egy cikkünk: Diszkrét JavaScript. A feladat, hogy az oldal betöltődése után végigmész minden link elemen, megnézed, hogy van-e accesskey tulajdonsága, ha igen, akkor felveszed egy tömbbe az accesskey értékét és az objektumot. Ezen kívül a body onkeypress eseményébe is "be kell épülni", s ha alt-ot és a megfelelő gyorsbillentyűt lenyomja, meghívod az adott objektum click metódusát.

-boogie-
5

Ez abszolút diszkrét

Jano · 2005. Nov. 25. (P), 00.02
A behaviorok abszolút a diszkrét javascript kategóriába esnek, "csak" annyi a hibájuk, - ahogy te is mondtad - hogy csak IE-ben működnek.
6

Jaja

Bártházi András · 2005. Nov. 25. (P), 00.20
Hát, nekem elég ez a "csak". :) Ha látogatók kb. 10-20%-a nem fog tudni élni egy ilyen funkcióval, az nem jó.

-boogie-
7

Tud, csak böngsző hagyományos viselkedésével

Jano · 2005. Nov. 25. (P), 01.36
Tud, csak úgy ahogy böngésző alapból támogatja: alt+accesskey és utána enter.
8

Ha jól értem..

Anonymous · 2005. Nov. 25. (P), 12.07
Ha jól értem, akkor a behavior fájl elvileg jól van, és működni fog, csak a CSS-en kell változtatnom.

Ezt:
body { behavior:url(accesskey.htc); }
Erre:
body.onfocus { behavior:url(accesskey.htc); }
9

Nem

Jano · 2005. Nov. 25. (P), 15.59
A behavioron belul definialva van, hogy melyik esemenykezelot kell megvalositania, pont ez a lenyege, hogy a viselkedest külön tudod megadni. Azt kell beállítania CSS-ben hogy melyik elemeket ruházza fel ezzel a viselkedéssel.
10

accesskey javascriptre

Anonymous · 2005. Nov. 27. (V), 13.36
Az accesskey paramétert rá lehet-e tenni egy sima scriptre?
Tehát a JS function valami() nevéhez kapcsolni.
Az nem nézne ki valami jól, ha egy html linket tennék az oldalra ami erre hivatkozna, és teennék rá egy accesskeyt.
11

Azt máshogy: kezeld le az eseményt

Jano · 2005. Nov. 27. (V), 13.54
Azt nem accesskey-vel kell megoldani hanem a JavaScript eseménykezelőjével!
12

Mondani könnyü...

Anonymous · 2005. Nov. 27. (V), 15.59
Mondani könnyü...
13

Kérdezni még könnyebb!

Jano · 2005. Nov. 27. (V), 16.42
Megadtam az utat, keress rá Googleben...
handling keypress javascript
14

Köszönöm!

Anonymous · 2005. Nov. 29. (K), 11.00
Köszönöm a segítséget!

De ha beírom mondjuk, hogy alt + h, akkor a hozzá rendelt esemény ugyan végbemegy, de angol ie-nél a help menü is megnyílik, de ez böngészőfüggő, hogy még mi jön be.

Ki lehet ezt küszöbölni?
15

Nem valoszinu

janoszen · 2005. Nov. 29. (K), 11.23
Nem valoszinu. :) A bongeszo mukodesebe csak limitaltan tudsz belenyulni.
16

Esemény "felbuborékolás" :) letiltása

Jano · 2005. Nov. 29. (K), 11.53
Eseményeket le lehet tiltani, hogy ha lekezelted őket akkor tovább adódjanak a dokumentum fában a következő elemnek.
Események működéséről (angol).
17

:)

Anonymous · 2005. Nov. 29. (K), 12.17
Nincs erre egy kész megoldás? :)
18

De ha kiadod munkaként valakinek...

Jano · 2005. Nov. 29. (K), 13.33
Feladtam.