Szülőablak objektumainak elérése iframe js kódjából
Sziasztok!
Lehet, hogy tök hülyeség, amit kérdezek, de el lehet érni az iframe HTML elemet tartalmazó dokumentum objektumait az iframe elemen keresztül beillesztett HTML dokumentum JavaScript kódjából?
■ Lehet, hogy tök hülyeség, amit kérdezek, de el lehet érni az iframe HTML elemet tartalmazó dokumentum objektumait az iframe elemen keresztül beillesztett HTML dokumentum JavaScript kódjából?
Js
<script>window.top.window.valamiFuggveny();</script>
Ha jól emlékszem, ez csak akkor megy, ha azonos domainen van az iframe és a szülő.
Külön domain
http://webakademia.hu/2007/10/iframe-magassaganak-automatikus-allitasa/
Ha jól értem...
Ha jól értettem, akkor a HTML így néz ki:
Ez így mind szép és jó (miután valaki kijavítja benne a hibákat), de mi van akkor, ha a beágyazott oldal nem segít? Gondolom akkor ennyi volt.
Nem tud valaki olyan böngészőt, ami nem kezeli ezeket a biztonsági szabályokat?
Előre is köszönöm a kiigazítást!
Kísérlet
Hm...
"uncaught exception: Engedély megtagadva a tulajdonság lekérdezéséhez: Window.body"
...pedig egy domain-en vannak...
Ezek szerint nem a JS kódban volt a hiba, hanem a szerveren van tiltva a JS barkácsolás (hogyan?). Mindenesetre köszi a válaszokat. Azért egy pillantást érdemes vetni a wikidot.com-ra, szerintem tök korrekt cucc ;)
Gondolkozzunk már el ezen...
"A Window object is created automatically with every instance of a <body> or <frameset> tag."
Fogtam a greasemonkeyt.
A fentiek szerint ha iframe -be belenyomok egy html-oldalt, akkor két Window objectem van, és tényleg így is van, kipróbáltam egy alert(window.location.href)-el előrször a beillesztő majd a beillesztett oldal hrefét kapom vissza. MIkor kívülről (tehát a beillesztő oldalról) Egy gombbal új dolgot nyomok az iframe-be, akkor (Firefox alat) lefut a js kód is még egyszer(tehát jön az alert -de csak az iframe-be illesztett oldal href-vel) IE6 alatt (oda is van greasemonkey) viszont nem.
No ilyen dologgal találkozott-e már valaki? Hogy viszonyulnak az ugyanolyan elemek a dokumentumban (ugye 2 head 2 body stb stb)...egy getElementsByTagname('head') -ra lenne egy tömböm? Frissül az oldal (FF alatt igen- azaz lefut megint a script) vagy nem (ie alatt nem!)
Majd utánanézek még ennek bővebben, csak mondom felvetem már ezt a dolgot, hogy van -e erre valami általános szabály, és találkoztatok e már ilyennel.
Ácsi
A getElementsByTagname a document metódusa ugye (document.getElementsByTagname) Így nem kapod vissza az keretekben lévő elemeket, mert azok egy másik ablakban vannak (mert a document meg a window-nak egy metódusa)...
További kérdés, hogy hová is nyomtad azt az alert-et onload-ra? Hogyan nyomtál új dolgot a keretbe (teljes dokumentumot, vagy csak valami módosítást nyomtál)?