ugrás a tartalomhoz

JavaScript és SVG

Anonymous · 2005. Nov. 15. (K), 22.54
Üdv.

Lenne két kérdésem: egy HTML oldalon van 3 db beágyazott SVG. Az egyikben van az onload eseménykezelőhöz egy initSVG() függvény rendelve. A függvény futása folyamán hivatkozik a másik SVG egyik elemére. A függvény futásakor a böngésző néha hibát jelez. Arra gondoltam, lehet, hogy olykor vmi miatt a fv. futásakor még nem töltődött be a másik SVG, ezért jelez hibát.

1. kérdés: Lehetséges ez, vagy más gond van?

2. kérdés: Ha ez a gond, hogyan tudnám megoldani, hogy a fv. csak a másik SVG teljes betöltődése után fusson le?

Köszönöm
 
1

Elvileg

Bártházi András · 2005. Nov. 16. (Sze), 00.54
Elvileg a böngésző akkor indítja csak el a "load" eseményt, ha már betöltötte az oldalon levő összes elemet, beleértve az SVG-t is. Mivel az SVG egy különlegesebb állatfaj, mint a képek, ezért adott esetben lehet, hogy másképp van - ezen a téren még nincs tapasztalatom.

Jó lenne tudni (kidebuggolni) a pontos JavaScript hibát, hátha attól okosabb leszel.

-boogie-
2

SVG onload

Anonymous · 2005. Nov. 16. (Sze), 20.07
Az SVG-ben levő onload akkor fut le, ha maga az SVG betöltődött. Próbáltam a HTML onloadhoz rendelni, de az SVG-ben levő onmousemove, onmouseover eseménykezelőkhöz rendelt fv-ek is olyan változókra hivatkoznak, amelyeknek az SVGInit() fv. adna értéket, de végülis sikerült, bár nem túl szép.

Az SVG onload meghívja az SVGInit() függvényt, az meghívja a moreSVGInit() fv-t, amely megnézi, hogy van-e értéke a másik két SVG gyökérelemének gyermekének, s ha nincs rekurzívan meghívja a moreSVGInit()-et.
Próbáltam ezt a setTimeout()-ot a moreSVGInit()-ben, de vmiért mikor erre került a vezérlés, a "külső" fv-ben (SVGInit()) lefuott a köv. sor (???)
Na mindegy, most megy.