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.
Klik, klik, klik…
Jaký je problém? Když do IFrame načtu javascriptem stránku, ozve se v Internet Exploreru tiché kliknutí – určitě jej znáte. Problémem je, že já těch IFramů generuji více – dva, pět, třeba i deset, a z jednoho kliknutí se vyklube zvuk, připomínající rej myší chycených do pastiček na laciný kousek sýra. Kulometná palba. Řehtačka v rukou nezodpovědného dítěte. Mám kód podobný tomuto: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);
Tuto fintu jsem sic zkoušel a ukázala se chyby produkující, však od té chvíle jsem napsal mnoho důležitého kódu (který mimochodem ony chyby odstranil) a toto jediné logické řešení mne nenapadlo znovu vyzkoušet. Za trknutí děkuji h!ynkovi. Promiňte, že jsem vás obral o tolik času.

:)))))
zalezi, na co to potrebujes. Treba muzes pouzit i ajax s PHP/ASP/Python/Perl proxy (pokud nacitas nejake externi stranky) a pouzit techniky z thickboxu ( http://codylindley.com/…ule-them-all ).
Arcao: Děkuji, ale opravdu potřebuji IFrame (jsem si tím naprosto jistý, tak mi věřte), až tu aplikaci představím, bude vše jasné. Umím si ve většině případů poradit celkem bez potíží, ale tohle je krize, která si žádá opravdu geniální nápad. :o)
Já bych před načtením těch iframů požádal uživatele IE (pomocí window.alert) aby si na pár vteřin vypnuli repráčky. Věřím, že uživatele tohoto prohlížeče už nemůže nic rozhodit, takže příkaz bez remcání splní ;oP
http://www.void.be/googletool.html – kopa ramov, ziadny zvuk mozno to plati aj na iframe
Co vytvořit dynamicky stránku plnou iframů a tu potom otevřít v celém okně případně v jednom vytvořeném iframe?
A co to zkusit obráceně, nejdříve src a pak appendChild? To nepomůže.
Nevím, kdo jsi, h!ynku, ale zasloužíš metál. :o)
Tohle je jedno z těch řešení, které jsem samozřejmě zkusil, ale z nějakého důvodu nebyla realizovatelná, IE stránku v IFrame nenačetl. Potom jsem přidal dost kódu, který hlídal konstrukci DOM v IFrame, a už jsem to řešení znovu nevyzkoušel. Až teď.
Díky, snad vyřešeno. Nekliká – a je to samozřejmě logické! Doufám, že nenarazím ještě na nějaká další překvapení z této změny plynoucí.
Tímto komentářem počínaje zahajuji diskusi na téma: „Proč se člověk podvědomě brání očividným řešením?“
[…] ony chyby odstranil) a toto jediné logické řešení mne nenapadlo znovu vyzkoušet. Za trknutí děkuji h!ynkovi. Promiňte, že jsem vás obral o tolik času. […]
Doufám, že jsem ještě člověk ;) S javascriptem jsem si za posledního půl roku užil dost, takže tohle je pro běžný způsob zápisu (prvně všechny atributy a až pak vykreslit).
To je skvělé. Neřešitelný úkol byl promptně vyřešen a jako čtenář jsem obohacen o krásný popis toho nežádoucího zvuku.
Třeba za pár let to bude hit ;)
Ono to tak vetsinou je. Ze ten nejtezsi problem je prkotina, a prkotina u ktere si rikate ze nebude problem je orisek se slozitosti primo umernou puvodni myslene jednoduchosti.
Nedávno jsem řešil něco podobného, pokoušel jsem se generovat javascriptem vysouvatelné menu.To zase cvakalo při přejíždění jednotlivých položek, chvílemi jsem si připadal jako ve válce… Trápil jsem se s tím několik hodin a na nic jsem nepřišel, až když jsem ho ze šablony převedl na server, cvakat přestalo. Takže důvod nevím dodteď…
osobně jsem toto řeši lnedávno u nějakého shopu a bohuel jsem to dělal obezličkama ;)díky za tip :)
„Trápil jsem se s tím několik hodin a na nic jsem nepřišel, až když jsem ho ze šablony převedl na server, cvakat přestalo. Takže důvod nevím dodteď…“
Menil jste v nem nejake obrazky? Leo
Taky děkuju za vyřešení, může se to někdy hodit.
<h1>tiffanychina iphonewholesale fashion</h1>
<h1>buy shoesiphone 3gs wholesale无为人生</h1>
wholesale MAC Mascara</br>sdf wholesale MAC Concealer</br> sdf wholesale MAC Eyeliner Gel</br> sds
what your lovely bags handbags lady bags golf bags
It's always nice when you can not only be informed, but also engaged! abercrombie and fitch
Well said, such a person should be a good sentenceedtiffany uk eyebrow with this as well you love di too
UGG Nightfall Boot(UGG 5359)lets you become tremendously popular when you wear it. UGG boots sale are quite durable. Don't hesitate to Shop for 100% sheepskin Nightfall Ugg Boots now! 15.
UGG Ultra Tall Boots are 100% premium wool fleece wicks moisture away. Ultra Tall UGG Boots very nice for the women. Give you cheap ugg boots wtih the Preferential policies!