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

  • dqdb

    Topikgazda

    válasz Penge_4 #18956 üzenetére

    Ha a főoldalon bal oldalt az azonosító mezőre gondolsz, akkor azért, mert ügyesen nem egy HTML form része.

    Az Opera jelszókezelője úgy működik, hogy egy form elemen belül az összes input értékét megjegyzi. A Wand kitölti az összes mezőt, és meghívja a form elemhez csatolt onsubmit eseményt, vagy a submit típusú input elemet. Itt nincsen form, nincsen submit URL, nincsen mit megjegyezni és automatizálni.

    Az AJAX térhódításával együtt egyre több ilyen oldal lesz, ahol a fejlesztő nem gondol erre a problémára (vagy direkt tesz az ügy érdekében).

    tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

  • Penge_4

    veterán

    válasz dqdb #18957 üzenetére

    Az gáz. És nem lehet valamit tenni vele, mondjuk userJS-sel?
    Amúgy meg miért jó egy oldalnak, ha direkt szívatja a felhasználókat?

  • dqdb

    Topikgazda

    válasz Penge_4 #18958 üzenetére

    Az gáz. És nem lehet valamit tenni vele, mondjuk userJS-sel?
    Elvileg lehet, csak meg kell nézni a pontos működést, hogy hová és milyen formában mennek el az adatok (jQuery alapú az oldal, azt horror kibogozni, legalábbis nekem rendkívül kicsi hatékonysággal megy). Ha van lehetőség arra, hogy ez egy form submit folyamán történjen meg, akkor 30-40 sornyi kódból megoldható.

    Amúgy meg miért jó egy oldalnak, ha direkt szívatja a felhasználókat?
    Opera felhasználóként ez még kérdésként felmerül számodra? :DDD

    tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

  • Sk8erPeter

    nagyúr

    válasz dqdb #18959 üzenetére

    "jQuery alapú az oldal, azt horror kibogozni"
    Miért lenne már "horror" kibogozni a jQuery-kódot? :Y
    Ha valaki jól ismeri a jQuery-t, akkor neki pontosan ugyanannyi erőfeszítés kibogozni a jQuery-ben megírt kódot, mint a plain JavaScriptben készültet. Sőt, adott esetben gyorsabb is lehet, mert a jQuery ugye csak egy library a JavaScriptben kódolás egyszerűbbé és gyorsabbá tételéhez, így jQuery-ben sok minden egy sorban is megoldható, ami plain JS-ben 5-6 sor, ergo ilyen kódoknál a kibogozás is gyorsabb lehet.
    Amúgy is, ezen az oldalon nem az a gond, hogy milyen library felhasználásával készült a kód, hanem hogy minimalizálva van a kód (whitespace-ek kiszedve), lásd pl. ezt - de erre is van egy megoldás, fogod a kódot, bedobod http://jsbeautifier.org/-on a textarea-ba, és szépítteted. De ekkor jön a következő probléma: felfedezed a gyökér változóneveket és függvényneveket, ami viszont kivételesen nem a fejlesztők "hibája", hanem azért van ez, mert valszeg obfuszkálva lett a kód.
    Szóval a kibogozás nehézségének semmi köze ahhoz, hogy a kód egy része jQuery-ben készült.

    A kód amúgy is ezer sebből vérzik: ott van a HTML-kódban az a probléma, amit említettél (miért nem lehetett egy nyomorult form elembe rakni azt, ami űrlap része), aztán a JS-kód tele van console.log() hívásokkal, amitől pl. az IE8 azonnal kiakad (értem én, hogy nem támogatják, de attól még a console.log()-ot és társait alapvetően fejlesztési célból, debuggolásra, kód helyes/helytelen lefutásának ellenőrzésére használjuk), meg van még egy pár hülyeség sztem, de eléggé OFF-olás lenne itt felsorolni.
    Amúgy nem értem az ilyen fejlesztőket, attól még, mert alapvetően modern akar lenni az oldal, attól még nem kell tákolni, mint egy nyomorult kezdő, pl. úgy elkészíteni egy űrlapot, hogy csak odab@sszintanak valahova egy input-elemet, úgy, hogy nincs körbevéve egy form taggel, ami pedig szemantikailag is helyessé tenné az űrlapelem jelenlétét.

    Na, de rátérve a konkrét parára, az Opera Wand működőképessé tételéhez nem elég, ha userJS-sel vagy extensionnel körbevonjuk oldal-betöltődéskor egy form taggel a megfelelő űrlapeleme(ke)t? Nem próbálgattam még a probléma megkerülését, mert szerencsére nem sok olyan oldalt látogatok aktívan, ahol ilyen gyökérül van megoldva (vagyis nincs megoldva) az űrlap, de érdekes lehet a dolog.

    Sk8erPeter

  • brd

    nagyúr

    válasz Sk8erPeter #18960 üzenetére

    Amúgy nem értem az ilyen fejlesztőket, attól még, mert alapvetően modern akar lenni az oldal, attól még nem kell tákolni, mint egy nyomorult kezdő...

    Hát ez úgy megy nagyban, hogy ilyen munkákra gyakran a havert, vagy olcsón dolgozót alkalmaznak, aki többnyire csak annyit tud, hogy a keresőt használva összetákolja a kódot működőre, a többit le...ja, mert vagy agya nincs hozzá, vagy nincs megfizetve.

    The only real valuable thing is intuition.

  • dqdb

    Topikgazda

    válasz Sk8erPeter #18960 üzenetére

    Ha valaki jól ismeri a jQuery-t, akkor neki pontosan ugyanannyi erőfeszítés kibogozni a jQuery-ben megírt kódot, mint a plain JavaScriptben készültet.
    Na ez az, fejlesztő, de nem webfejlesztő vagyok, és az eddigi jQuery tudásomat is oldalak forrásszövegéből szedtem össze (annyira nem érdekel a téma, hogy részletesebben utánanézzek, annyira más területen mozgok). Az obfuszkált kód ebben eléggé megnehezíti a dolgokat, és épeszű ember éles környezetben már csak a kisebb adatforgalom miatt is ezt a változatot használja, szóval így végiggondolva nekem nem igazán a jQueryvel van gondom, hanem az obfuszkált kóddal, ami történetesen eddig mindig jQuery volt :)

    Na, de rátérve a konkrét parára, az Opera Wand működőképessé tételéhez nem elég, ha userJS-sel vagy extensionnel körbevonjuk oldal-betöltődéskor egy form taggel a megfelelő űrlapeleme(ke)t?
    Elég lenne, erre utaltam Penge_4-nek írt hozzászólásomban a 30-40 sornyi kóddal. Más kérdés, hogy a submit funkciót helyettesítő gomb lenyomásakor milyen - adott esetben aszinkron - kód kerül végrehajtásra, és azt vissza lehet-e vezetni egy egyszerű form submitre.

    tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

  • Sk8erPeter

    nagyúr

    válasz brd #18961 üzenetére

    Hát ez azért nem igaz szerencsére, hogy "nagyban így megy", hogy kezdőkkel hozatnak össze nagy cégeknek oldalakat (én mondjuk erről a cégről nem tudok semmit), és hogy ez tök általános jelenség lenne. A "haveri alapon" attól még persze az. Azért ezen az oldalon, amiről szó van, látszik, hogy nem kezdők hozták össze, mivel komplex, és nem valószínű, hogy a keresőt használva tákolták volna össze. Nem emiatt nem rakták ezt az input-elemet egy form tagbe, valszeg csak valamiért így volt egyszerűbb az adott fejlesztőeszközzel, vagy első körben tényleg lefosták a kompatibilitást, nem lett agyontesztelve, nem érkezett erről még felhasználói visszajelzés (sajnos azok is b@sznak küldeni sokszor negatív visszajelzést, akik aktívan használnak egy oldalt, pedig ez fontos! Normális fejlesztőbrigád ezt nem veszi rossz néven, hanem az igényeknek megfelelően próbálnak alakítani az oldalon, persze plusz pénzért), stb... aztán nem lett második kör. :D

    Sk8erPeter

  • Sk8erPeter

    nagyúr

    válasz dqdb #18962 üzenetére

    Bőven lehet látni obfuszkált plain JS-kódot is... :) Csak mivel mostanság a jQuery elég divatos (végül is legnépszerűbb library tudtommal), mivel tényleg egyszerűvé teszi a JS-kódolást (ahogy persze más library-k is), és számtalan mennyiségű plugint fejlesztenek hozzá, ezért nagyobb eséllyel találkozol jQuery-kóddal, mint plain JS-kóddal. :)

    "Elég lenne, erre utaltam Penge_4-nek írt hozzászólásomban a 30-40 sornyi kóddal."
    Körbevenni egy elemet form taggel jQuery-ben egyetlen sor. Példa:
    http://api.jquery.com/wrap/
    Legfeljebb a jQuery felhasználhatóságához kell pár sor, de erre itt írtam stackoverflow-n korábban egy nagyon egyszerű példát:
    http://stackoverflow.com/questions/2648042/using-jquery-within-opera-user-javascript/6108059#6108059

    Viszont mennyire vagy biztos benne, hogy a form tag a hiba? Nem lehetséges, hogy a Wand lekezeli azokat az űrlapelemeket is, amelyek körül nincs form tag?
    Ugyanis itt erősebb az, hogy az "autocomplete" attribútum off-ra van állítva, van egy ilyen sor a JS- (jQuery-)kódban:

    $("input,button,select").attr("autocomplete", "off");

    az autocomplete attribútumról:
    http://www.w3.org/wiki/HTML/Elements/input/text#HTML_Attributes

    autocomplete = on/ off/ default
    on
    The on state indicates that the value is not particularly sensitive and the user can expect to be able to rely on his user agent to remember values he has entered for that control.
    off
    The off state indicates either that the control's input data is particularly sensitive (for example the activation code for a nuclear weapon); or that it is a value that will never be reused (for example a one-time-key for a bank login) and the user will therefore have to explicitly enter the data each time, instead of being able to rely on the UA to prefill the value for him; or that the document provides its own autocomplete mechanism and does not want the user agent to provide autocompletion values. [Example A]
    default
    The default state indicates that the user agent is to use the autocomplete attribute on the element's form owner instead. (By default, the autocomplete attribute of form elements is in the on state.)

    [ Szerkesztve ]

    Sk8erPeter

  • dqdb

    Topikgazda

    válasz Sk8erPeter #18964 üzenetére

    Bőven lehet látni obfuszkált plain JS-kódot is...
    Persze, rutinnal, az obfuszkálás előtti állapotot stílusát ismerve bőven lehet. Én is tudok szemre ASN.1-et dekódolni ...

    Köszi a linkeket, majd ránézek. Mivel ez már a sokadik oldal, ahol belefutok a jquery.min.js-be, így lassan a saját érdekem lesz vagy megszokni az oldalak hülyeségét, vagy elkerülni őket, vagy felfejleszteni a jQuery tudásomat (csak ez utóbbi helyett szeretem olyan területen képezni magam, aminek a munkában is használt látom).

    Viszont mennyire vagy biztos benne, hogy a form tag a hiba?
    Csak futólag néztem bele a kódba, nem volt időm többet foglalkozni vele, de a DOM fát kibontva azt láttam, hogy nulla darab form tag, egyetlen input type="text" és egyetlen button. Ennyi infóból nem véletlen, hogy a Wand tehetetlen.

    tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

  • Sk8erPeter

    nagyúr

    válasz dqdb #18965 üzenetére

    "Én is tudok szemre ASN.1-et dekódolni ..."
    Nem úgy értettem, hogy én simán tudom szemre dekódolni az obfuszkált kódot :)

    "Mivel ez már a sokadik oldal, ahol belefutok a jquery.min.js-be, így lassan a saját érdekem lesz vagy megszokni az oldalak hülyeségét"
    Mármint itt milyen hülyeségükre gondolsz?

    "Ennyi infóból nem véletlen, hogy a Wand tehetetlen"
    Jaja, ez ettől még lehetséges, de mondom, itt az autocomplete attribútum off-ra van állítva, ami azt jelenti, hogy akkor az automatikus kitöltés nem is fog működni, kényszerítve van a júzer, hogy begépelje az adatát. Szenzitív jellegű adatoknál szokták ezt csinálni, pl. a Neptunnál is ez van, ha belekukkantasz a forráskódba, igaz, ott magára a form tagre határozták meg.
    Persze ettől függetlenül teljesen jogos, amit mondasz, azért SEM működik a Wand, mert nincs form tagbe pakolva. Már csak azért is gyökérség ez, mert így egy szövegmezőben nyomott sima Enterre nem submitolódik maga a form.

    Amúgy látom a jelszómező meg egy sima display:none-nal el van tüntetve alapból, gondolom csak azután jelenik meg, miután ellenőrizve lett külön az azonosító, így nem is tudom hirtelen, hogy jól fog-e működni a Wand, miután form tagbe pakoltuk az egészet mondjuk egy userJS-sel vagy extensionnel. Úgyhogy ez még nyitott kérdés.

    A plain JavaScriptes wrap sem lenne 30-40 sor, majd reggel rittyentek demókódot, de most inkább aludni kéne. :DDD

    Sk8erPeter

  • Sk8erPeter

    nagyúr

    válasz Penge_4 #18958 üzenetére

    Ez még nem userJS, de kimásoltam egy az egyben az azonosítós és jelszós részt az általad linkelt oldalról, és itt pl. már körbeveszem egy form taggel, megjelenítem az alapból rejtett jelszómezőt, valamint az autocomplete attribútumokat on-ra állítom:
    http://jsfiddle.net/Sk8erPeter/cbezg/
    Elég okádék a sok parentNode, de máshogy, értelmesebben nem lehetett megtalálni a restore-guid azonosítóval rendelkező elem megfelelő sokadik "felmenőjét" (szülőelemét), ami jó ahhoz, hogy oda kerüljön az egészet körbeölelő form tag (amibe becsomagoljuk az egészet). De ez így működőképes lehet. Nyilván ezt még userJS- vagy extension-formába is kell önteni. Azt nem tudom, a validálásnál mi lesz a parája, mivel az azonosítót külön validálja a jelszómegjelenítés előtt, már amennyire elnéztem a működését (csak sejtem futó rápillantás után, ellenőrizni nem tudtam, mivel nincs ilyen azonosítóm).

    [ Szerkesztve ]

    Sk8erPeter

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