Hirdetés

Új hozzászólás Aktív témák

  • Balázs1986
    őstag

    De itt mi a frásznak vizsgálgatsz user agentet? Tök felesleges.
    Plusz talán nem IE6-ban kéne próbálgatni a JSBint... :N Nem olyan meglepő, ha abban a rakás fostalicskában nem működik úgy, ahogy kellene neki.

    Na, de visszatérve. Eleve rossz gyakorlat mindent user agent vizsgálgatásától függővé tenni. Ha javasolhatom, erről még időben szokj le. :) A jó gyakorlat az, ha egy adott böngésző képességeit vizsgálgatod inkább, hogy milyen feature támogatott benne.
    De erre a keycode-os problémára meg ott volt az egyszerű egysoros kód:
    var keycode = (event.which) ? event.which : event.keyCode;
    Ha épp a lenyomott karakterek kódjára vagy kíváncsi, ki nem sz@rja le, hogy az adott felhasználó Internet Explorert vagy épp Konquerort vagy valami tök mást használ-e.

    Akkor már csak IE8 alatt tesztelem :)
    Kipróbáltam az általad másolt kódot még akkor, amikor láttam a JSBint-ben...egész pontosan így nézett ki:
    document.onkeydown=mozgat;
    function mozgat(e)
    {
    var nyomott = (e.which) ? e.which : e.keyCode;
    ...
    }

    Így is jön a "which értéke NULL, vagy nem objektum" üzenet. Ami érdekes, mivel neki a which-el nem kellene foglalkozni, ha csak nem mindjárt a vizsgálandó értékkel van a baj.
    Ezért próbaként változtattam így:
    var nyomott = (e.keyCode) ? e.keyCode: e.which;
    Ekkor pedig "keyCode értéke NULL, vagy nem objektum" jött...tehát arra gondolnék nem az ellenőrzésnél van a baj, hanem eleve nem is ad át az esemény karakterkódot :F
    Ez létezhet? És mint írtam, a JSBint-nél is ezt csinálja. Most már komolyan nem tudom, hogy az IE8 a bugos, vagy a kódom. Még arra tudok gondolni, hogy valamiért nem jó helyen van a fókusz...de akkor meg miért csak IE8 alatt? :F
    (Elnézést a sok szenvedésért, de tényleg nem tudom felfogni...)

Új hozzászólás Aktív témák