Keresé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.

    A useragent nem konkrétan ott és azért volt, hanem egy attachEvent / addEventListener miatt, még a kód első sorában, az init()-hez. Lehet, hogy ahhoz sem kellett volna, de méd nagyon kezdő vagyok :B De ha már ott volt, gondoltam azt használom...nem jött be :D
    De a lényeg:
    Megoldódott a probléma :)
    document.onkeydown=mozgat;
    function mozgat(e) {
    var nyomott;
    e = e || window.event;
    nyomott = e.keyCode || e.which;
    ...
    }

    Ez a mocsok IE8 x-féle megoldás közül csak ezzel volt hajlandó mozgatni a kurzort...de lényeg, hogy most már megy.
    Köszönöm a segítséget, azt meg főleg, hogy éjjel is :)

    Bocsánat a dupláért!

  • 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