Keresés

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

  • Balázs1986
    őstag

    Udv!

    Egy olyan kerdesem lenne hogy hogy tudnam megvaltoztatni a bongeszo url-jet az oldal ujratoltese nelkul?Eloszor .load()-al beoltom egy fajl a tartalmat egy div-be,majd mikor rakattintok az egyik menuelemre, .show()-al elohozom a div-et,es tulajdonkepp azt akarnam elerni hogy mikor elohozom a div-et valtozzon meg az url pl http://www.oldalneve.hu/-rol http://www.oldalneve.hu/menuneve/-re.Remelem jo helyen tettem fel kerdes,es valammenyire erthetoen fogalmaztam.

    Elore is koszonom a segitseget!

    Szia!

    Ha meg is lehet oldani, biztosan ezt szeretnéd? Ha jól értem, gyakorlatilag ugyanazon az oldalon maradnál, és egy nem létező url-t adnál meg. De ha ez van, akkor ha a user újratöltené az oldalt (enterrel legalábbis), hibát kap, mivel nem létezik a címsorban levő cím. A kedvencek közé rakásnál pedig megint csak ugyanez a macera van.
    Ha nem jól értettem a kérdést, akkor elnézést :B

  • 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...)

  • Balázs1986
    őstag

    Hát akkor valamit nagyon benéztél, ha a JSBines kód sem működik nálad. :D (neki érdekes módon ment, ahogy nálam is most is :) ) Gondolom nem olvastad el, amit abban a hozzászólásban írtam, hogy egyértelműsítsem a dolgot.

    http://jsbin.com/axuzid/edit#preview
    KATTINTS BELE abba a területbe, ahol a Hello World szöveg van...majd nyomogasd a kurzorbillentyűket (nyilakat).

    De, olvastam, és nálam, IE9 alatt mennek is. Leírom, pontosan mi a helyzet :)
    A szitu a következő:
    Nálam megy a JSBin és a saját kód is, IE9, Chrome, Fox alatt egyaránt, nincs gond.
    Közben ftp-zem fel egy tárhelyre, saját gép alatt virtuális gépen ellenőrzöm Xp alatti IE6-tal, és nem megy. Nem estem kétségbe, gondoltam biztos nálam a baj, ezért TeamViewerrel meglestem egy távoli gépen is, IE8 alatt. Ott nem megy sem a JSBin, sem a saját oldal (ami egyébként itt van) Más böngészőn virtuális és TW gép alatt jók.
    Valamint, csak hogy biztos legyen a dolog, saját gépen megy a VirtualBox, benne egy XP, 6-os Explorerrel, és ott sem mennek.
    Jelenleg ez a helyzet (ezúttal nem egy épp félig megírt kódrészt másolok :) ):

    var ua = navigator.userAgent; /*global*/
    var explorer = (ua.indexOf("MSIE")> -1) ? 1 : 0; /*global*/
    document.onkeydown = function (e)
    {
    if(explorer)
    { alert("explorer");
    nyomott=e.keyCode;
    }
    else
    { alert("nem explorer");
    nyomott=e.which;

    /*billentyűvizsgálat*/
    }

    Addig eljutok, hogy mind nálam, az IE9 alatt, mind a másik két gépen IE8 és IE6 alatt kiírja az adott böngésző, hogy "explorer", ellenben azonnal mögévágja, hogy "keyCode is NULL. Nem értem :(

  • Balázs1986
    őstag

    Sajnos nem működik a JS Bin kód sem, a which-el van baja, akárcsak az enyémnél (közben rájöttem, hogy amit fentebb másoltam, eleve nem lehetne jó :D )
    "which értéke NULL vagy nem objektum" -ezt kapom, ha gombnyomás történik.

  • Balázs1986
    őstag

    Sziasztok!

    Adott egy javascript program, amiben egy táblázat elemei között a billentyűzet nyilaival kellene közlekedni.
    Chrome, Fox, IE9 alatt működik, de IE8 és az alatt sehogyan sem bírom életre keleni.
    (Google találatok sem igazán segítettek ki :( )
    window.onkeydown = function (e)
    {
    if(window.e)
    {
    nyomott=e.keyCode;
    }

    else
    {
    nyomott=e.which;
    }

    if (nyomott==39)
    ...

    Próbáltam window helyett document-tel, de nem lett jobb a helyzet. Van ötletetek a helyes megoldásra?
    Köszönöm előre is!

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