JS-sel generált gombok onclick eventje IE alatt
Sziasztok!
A DOM scripting, valamint JS ismereteim bővítésére nekiálltam faragni egy BBCode beillesztőt.
A diszkrét javascript-használatot szem előtt tartva a formázógombokat JS-sel generálom, Firefox (1.5.0.5. Ubuntu Dapper és Win XP SP2) alatt megy pipecül, IE (6.0 WinXP SP2) nem tudom beizzítani.
Amit eddig próbáltam:
- addEventHandler függvénnyel
- input.onclick módon
- generált onclick attribútum
- event bubbling/propagation leállítása
Ha nem JS-sel generálom a gombokat, hanem szerepelnek az XHTML kódban, akkor megy az onclick IE alatt is.
További ötleteim, amikkel nem jutottam messzire:
- onload körül lehet gond? (pl. lap teljes betöltődése megvalósul, szóval ez halovány ötlet...)
- nem jól kapom el az event-et?
- rossz eventet kapok el?
Olvastam:
- WL "onclick +IE" keresőkifejezésekre adott találatait
- quirksmode.org JS szekció
- MS event bubbling és W3C event propagation modelljei
- MS developer zone JScript szekció
- google -> egy rakat fórum- és levlista-szál mindenfelé :(
Teljes forráskód megtalálható itt (tesztelési céllal azért két szövegmező van, hogy adott lapon több "aktív" textarea is lehessen).
Már meglehetősen sok változaton túl vagyok (vagy egy tucatfélén, a 3-as már visszaszámozott :) ), elég rendesen belegabalyodtam, úgyhogy örömmel fogadnék minden segítséget.
■ A DOM scripting, valamint JS ismereteim bővítésére nekiálltam faragni egy BBCode beillesztőt.
A diszkrét javascript-használatot szem előtt tartva a formázógombokat JS-sel generálom, Firefox (1.5.0.5. Ubuntu Dapper és Win XP SP2) alatt megy pipecül, IE (6.0 WinXP SP2) nem tudom beizzítani.
Amit eddig próbáltam:
- addEventHandler függvénnyel
- input.onclick módon
- generált onclick attribútum
- event bubbling/propagation leállítása
Ha nem JS-sel generálom a gombokat, hanem szerepelnek az XHTML kódban, akkor megy az onclick IE alatt is.
További ötleteim, amikkel nem jutottam messzire:
- onload körül lehet gond? (pl. lap teljes betöltődése megvalósul, szóval ez halovány ötlet...)
- nem jól kapom el az event-et?
- rossz eventet kapok el?
Olvastam:
- WL "onclick +IE" keresőkifejezésekre adott találatait
- quirksmode.org JS szekció
- MS event bubbling és W3C event propagation modelljei
- MS developer zone JScript szekció
- google -> egy rakat fórum- és levlista-szál mindenfelé :(
Teljes forráskód megtalálható itt (tesztelési céllal azért két szövegmező van, hogy adott lapon több "aktív" textarea is lehessen).
Már meglehetősen sok változaton túl vagyok (vagy egy tucatfélén, a 3-as már visszaszámozott :) ), elég rendesen belegabalyodtam, úgyhogy örömmel fogadnék minden segítséget.
attachEvent()
http://developer.apple.com/internet/webcontent/eventmodels.html
B
addEventHandlerben szerepel
Az addEventHandler Weblaboros források alapján :) így néz ki:
egyébként
http://www.sergiopereira.com/articles/prototype.js.html#Reference.Extensions.Event
hmm? :S és felejted el az egész baxakodást
Imádom
no jó
ui: ja szvsz és részemről ILOVE prototype :) , a 2.0-ba majd belekerül a base alapú class mechanizmus, és végre felejtős lesz az egész protochain-re épülő elmebaj :)
http://dean.edwards.name/weblog/2006/03/base/
http://dean.edwards.name/weblog/2006/05/prototype-and-base/
:)
Független szkriptek
nem csak onclick
Amúgy viszont kéne működjön a dolog:
már megy
no megvan # 08.40
Mindenképp szeretném megtapasztalni
Köszönöm neked is a kódot, öröm látni a "jelenlévők" segítőkészségét!
teljesen érthető
Szerintem is ez a jó hozzászólás, azt a részt Bencének szántam. Viszont ha az alapok megvannak, akkor egy keretrendszer tanulási szempontból is nagyon jó, sok tapasztalatot lehet abból szerezni, ha az ember megpróbál rájönni, hogy miért is úgy működik, ahogy.
Kódot csak azért küldtem, mert szerintem így egyszrűbb egy kicsit.
Felhő
persze
naki
JS framework lesz belőle...
A JS lib amúgy valószínűleg a JQuery lesz; a library-k útját, valamint konkrétan ezen összeállítást ezért választottam:
- kicsi (nekem ez eléggé fontos)
- kényelmesen, CSS-re emlékeztetően oldható meg a legtöbb probléma
- moduláris, ha netán egyszer írnom kéne hozzá valamit (egotrip ^^)
Viszont továbbra sem értem, mi a gond. Még hibaüzenet sincs, mintha meg sem kapná az onclick eventet IE alatt a kezelő.
hát majd
http://toxin.hu/test.html
ui: jó ill. gyors parkettacsiszolást :)))
vagy írsz saját eseménykezelő
pl.
no megvan
90.sor
így megy
üdv t aki most kicsit frusztrált lett :))) :P :P :P IE
ui: http://toxin.hu/bbcode/testbb.html
Wow
Köszönöm!
(Parketta: :D csúnya szívás az is, és halad az is. :))
np :)
ja csakhogy necsak a sötét oldalt lássuk, ami inkább a világos :) mert ami most jön az a sötét, könyebb,gyorsabb,csábitóbb, ugyanez a függvény prototype + scriptaculous DOM builder-ével
üdv t
ui: http://toxin.hu/bbcode/testbb_proto.html bár az egészet átkéne írni, mindenesetre mutatja mennyivel gyorsabban lesz meg bármi :) +51k becsatolt js kódért cserébe, mondom hogy ez a sötét oldal :))) (elsőre gyorsan megvan, érthető, logikus, átlátható és brózefüggetlen )
jscompressor
http://www.phpclasses.org/browse/package/3158.html
más megoldások
JSMin - http://crockford.com/javascript/jsmin
ShrinkSafe - http://alex.dojotoolkit.org/shrinksafe
És utána még el lehet gondolkozni azon, hogy használunk még tényleges tömörítést is.
Felhő
amit meg is tettetek
http://weblabor.hu/blog/20060129/cssjstomorites
még jó hogy a gugli igen : 'gzip js'
folytatás a jézuskától ;)
A témán felbuzdúlva kicsit átírtam a régebben itt is bemutatott kurzor kezelő megoldásomat. Az eredmény egyenlőre itt tekinthető meg. Az előző verzióhoz képest (az csak a kurzor poziciót kezelte) belekerült a kurzor (kijelölés) szélességének támogatása, meg még egy két nyalánkság. Per pillanat a kuzor kezelés jól működik IE, FF, Opera alatt is, illetve valszeg minden szabvány követő böngészővel. Opera alatt viszont van egy kis gond az eseménykezeléssel, sajnos nem teljesen W3C kompatibilis. Ez a kurzor kezelést nem érinti, viszont a demo oldal ott még nem tökéletes, pedig így is kellett kicsit hackelni bele, hogy ott is jó legyen, már csak annyi gondom van, hogy a stopPropagation nem megy. Annó amikor belevágtam, akkor cél volt, hogy az eseménykezelés is teljesen saját legyen (tanuló célzattal), most majd lehet, hogy kipróbálok pár keretrendszert, hogy azok alatt mi újság ezzel a témával kapcsolatban.
A kurzor kezelés per pillanat:
- kurzor helyének lekérdezése (pozíció, kijelölés hossza)
- kurzor pozíció beállítása (csak kijelölés változtatása, pozíció változtatása is)
- beszúrás (előtte/utána szöveg) az aktuális kurzor pozícióra (paraméterezhető: legyen kijelölve, amit beszúrtunk; ami a beszúrás előtt ki volt jelölve, az cserélve legyen, ne körülvéve)
Felhő
per pillanat nem a legfrissebb kód van kint, majd reggel frissítem
prototype eseménykezelés
igaz már 1.5-höz :)
SZVSZ nem fogja tudni
Felhő
hát
Opera Event.stop
Felhő
prototype.js bug + user error
returnValue
van Opera esetében is, ezért nem hívódott meg apreventDefault()
. Két tanulság (ami kurzorkezelésnél is előjött), hogy mindig vegyük előre a szabvány szerinti működést használó kódot, meg property-k létezésének vizsgálatára használjuk atypeof valami != 'undefined'
formát.Ezzel együtt viszont (és ez zavart meg némileg eredetileg) a prototype Opera alatt bugos egy kicsit. Itt egy ezt bemutató kis kódrészlet:
Felhő
re
* Microsoft Internet Explorer for Windows, version 6.0 and higher
* Mozilla Firefox 1.0/Mozilla 1.7 and higher
* Apple Safari 1.2 and higher
aztán azért hajrá :) (mondjuk délután én is kezdtem rájöttem miért, opera érdekes jószág :) )
én gyártottam
http://toxin.hu/eventFlow.html
saját oktatásomra, kattingassatok a szürke téglalapokba és lesz nagy jó (piros keretbe kiírás, bele kattintva törölhető), de az opera-nak még nekifutok mégegyszer :)
kiindulásnak egyébként ez jó: http://www.opera.com/docs/specs/js/
ui: egyébként továbbra is http://www.quirksmode.org/js/events_advanced.html
és látható a teljes káosz, és maradnak a crossbrowser cuccok :)
Komoly lett az új verzió!
Szerény ez így augusztus közepe táján... :)
A funkcionalitás viszont látványosan gazdagodik, némi (tulajdonképp favágó) utómunkával megközelíthető a rich text editorok szolgáltatásgazdagsága.
Az Operáról megint tanultam valamit.
A kipróbált keretrendszerekkel kapcsolatos tapasztalataidról esetleg majd írnál bővebben? Épp választás előtt állok, kíváncsi lennék, Te mit látsz bennük. Mint említettem, nekem kompaktsága miatt a JQuery egyenlőre a befutó, de nyitott vagyok másra is.
van cikk
http://www.sitepoint.com/article/javascript-library
:)
ui: egyébként ha a méret miatt
You can gzip the prototype.js file, getting the filesize down to 12,479kb sweet! So I now include it with:
src='prototype.js.gz'
:)))
OFF
Azt már jóideje látom, hogy prototype ügyben kit kérdezzek, ha elfajulnak a dolgok. :)
jó van no :)
http://prototype.rajmi.hu/prototype.js.hu.html
innen is óriási köszönet Séra László-nak (lehetne már frissíteni :)))) ) nagyon megkönyíti az indulást, no meg big thx a cheatsheat-nek is
http://www.snook.ca/archives/000531.php
régóta wallpapper-em :))
ui: másrészt különbség a kódbázisok között főleg a logikájukban van szvsz, nem a képességeikben (css-ezek én elég sokat, js alatt nem akarok semmi ahhoz hasonló látni :))) )
u2: ez kimaradt 3. okként, az Ajax in Action c. kedvenc js könyvem összes gyakorlati péládja prototype kódbázis alatt futott
http://www.amazon.com/gp/product/1932394613/104-5207273-6266311?v=glance&n=283155
prototype tömörítés + dokum.
Olyan határozatlan vagyok. Vagy nem? :)
(Ki fogom próbálni prototype-ot és JQuery-t is, és kész. Amelyik rokonszenvesebb, arra állok rá.)
javascript frameworkok
A Mochkittel nem nagyon foglalkoztam még, így arról nem tudok semmit mondani, a többiek esetén így látom a dolgokat:
- A dojo egy nagyon szép kis cuccnak tűnik. Szép apival, rengeteg nagyon jól kitalált dologgal, az esemény modelje olyan, hogy akár AOP-ra is alkalmas. Plusz ott vannak olyan finomságok, mint a dojo.storage, meg hogy saját widgeteket lehet benne készíteni, szóval úgy tűnik, hogy jó döntés lehet több energiát ölni a megismerésébe.
- A prototype-ban hihetetlenül jó, hogy milyen tömören és szépen lehet dolgokat leírni (lásd toxin példái). Iszonyatosan jól vannak az alap JS objektumok kibővítve, ott van hozzá a script.aculo.us kiegészítés, ami szintén egy nagyon jó dolog.
- A YUI-ban meg azt látom, hogy amit megcsináltak az nagyon profi lett, látszik, hogy komoly meg fizetett tudás van mögötte, az esemény kezelés nagyon jónak tűnik benne, meg a komponensek is nagyon hasznosak lehetnek.
Valószínűleg az lehet az üdvözítő megoldás, ha az ember kitapasztalja, hogy hogyan lehet a különböző könyvtárakat jól vegyíteni egymással. Valószínűleg lesznek/vannak? olyan próbálkozások, hogy összehozzák a különböző megoldásokat, vegyítve azok előnyeit. Valószínüleg a feladat határozza meg, hogy melyiket lehet érdemes használni.
Bennem egyrészről dolgozik, hogy jó lenne a dojo-t alaposan megismerni, használgatni, de más részről meg sajnálnék lemondani a prototype "szépségéről". :)
Felhő
Kösz a kimerítő választ
Jelenleg prototype vs jquery meccs van. :)
vs helyett és ;)
Felhő
prototype
ugyan láttam a http://www.sitepoint.com/article/javascript-library a cikkben
$$("div.obscene").map(Element.hide);
$$("a[href='http://']").each(function(element)
{
Event.observe(element, 'click', openNewWindow);
}
);
az 1.4-ben nem volt benne, ergo a doksijában sem, aztán el is feledkeztem róla, de most felfedezem a change log-ban http://dev.rubyonrails.org/svn/rails/spinoffs/prototype/CHANGELOG
1.5.0_rc0 final innen tölthető http://script.aculo.us/downloads
( nagyon zsír :))) )
ui: ahha kezdenek jönni a cikkek erről is a http://prototypedoc.com/ -ra