Javascriptová hádanka - vyřešeno

Na adresu Internet Exploreru už dnes z mých úst poněkolikáté přilétla smršť nelichotivých slov. Tvořím javascriptovou aplikaci, k jejímuž běhu potřebuji generovat IFramy a do nich načítat stránky. To vše javascriptem. Nepřekvapí vás, že žádný z prohlížečů nevzdoruje mé snaze takovou měrou jako právě Explorer.

Zvykl jsem si tolerovat a obcházet úlety tohoto obskurního prohlížeče ve věcí kaskádových stylů, poněvadž v drtivé většině případů existuje metoda, kterou se dá Exploreru hlava zdárně zamotat. Na co si však asi nezvyknu, je Exploreří zvláštní chování při manipulaci s javascriptem. Ne, implementace javascriptu v IE není zase tak špatná, ale výsledný obrázek poněkud kazí drobné chybičky a nesrovnalosti. Myslel jsem si, že i je dokázi obejít poměrně snadno, však v jedné jediné věci si už druhý den nevím rady a dokonce i všemocný Google tentokrát bezradně krčí rameny.

IFrameObj = document.createElement('iframe');
bodyObj.appendChild(IFrameObj);
IFrameObj.src = 'data/page.html';

Najdete řešení?

Google mi vytrvale tvrdí, že řešení neexistuje. Pravděpodobně bych postupem času vynašel nějakou složitou obezličku, kterak potřebný dokument v IE vygenerovat dynamicky, ale do toho se mi pravda nechce a ani to nemám tak nevyhnutelně zapotřebí.

Ale přesto se obracím na vás – Čechoslováci jsou proslulí svojí vynalézavostí, tak se prosím pokuste najít řešení, jak snadno scriptem načíst do IFrame stránku tak, aby Explorer při jejím načtení „neškytl“. Děkuji vám!

Update – vyřešeno

Jako každý „neřešitelný“ problém, o kterém se nepíše, měl i tento velice jednoduché a programátorem trestuhodně přehlédnuté řešení. Jediná finta spočívala v prohození dvou řádků kódu – místo zařazení IFrame do stromu dokumentu a následného načtení stránky v něm stašilo udělat obojí opačně. Nejdřív nezařazenému IFrame (který existoval v paměti pouze jako abstrakt) přiřadit stránku a pak až jej i s načítanou stránkou zařadit do dokumentu. Výsledný kód:
IFrameObj = document.createElement('iframe');
IFrameObj.src = 'data/page.html';
bodyObj.appendChild(IFrameObj);

22. 5. 2006, 16.38 | Webdesign.


Zanechte komentář





Můžete použít Texy! formátování.
Pokud se obsah boxů níže mění, zatímco píšete, potom žádné číslice nevyplňujte. V takovém případě antispam funguje, pouze se prohlížeči nepovedlo skrýt tento box.