Autor Zpráva
Joker
Profil
Část mého skriptu:

velky_obrazek = new Image();
velky_obrazek.src = url;
velky_obrazek.onload = ukazNacteny;

funkce ukazNacteny potom ten obrázek zviditelní.
Všechno funguje v pořádku... v normálních prohlížečích. Ale IE ignoruje událost onload toho obrázku. Že by to bylo nenačtením obrázku je vyloučené, zkoušel jsem to z disku. Navíc když se ta funkce místo onload načasuje přes setTimeout, funguje to v pořádku.

Dotaz: Je to normální chování IE, že v takovém případě na onload nereaguje? Dá se to nějak obejít?
Bubák
Profil
Kdysi jsem zkoušel něco podobného:

<script>
function schovej()
{
document.getElementById("obrazek").style.visibility="hidden";
}
function zobraz()
{
document.getElementById("obrazek").style.visibility="visible";
}
</script>

K vyzkoušení: http://teststranek.kvalitne.cz/obrazek-zobrazit-nacteny.html
Ale zlobí to v Opeře, pokud je obrázek v keši, tak se zobrazí až po reloadu sránky.
los
Profil *
Nastav onload pred tým, než zmeníš src.
Joker
Profil
Bubák
V mojí Opeře (9.21) to zdá se funguje normálně.
Ovšem v mém případě nemám prvek <img> na stránce, ale jenom objekt Image v JS.

Aktualizace problému: zdá se, že se to děje jen někdy. Zkoušel jsem to i přímo na webu a tam se to děje daleko méně často. Ale stejně se to občas stane.
Výsledek je tedy ten, že to jakoby funguje, ale občas u nějakého obrázku "zamrzne" preloader.

Jo, mimochodem, hodně podobný problém jsem viděl na Novinky.cz v Opeře: pokud je u článku galerie obrázků a současně některé obrázky z té galerie jsou obsažené i jinde v článku, v galerii se jakoby odmítají načíst (je vidět pořád jen preloader)Příklad- dva prostřední obrázky (ty co jsou i v článku) se po kliknutí nezobrazí.
Nekoukal jsem, jestli to může souviset s tím co řeším já.
Bubák
Profil
Joker
Tak jsem se díval a před rokem (13.10.2006 03:34:51) jsem to vyřešil i pro Operu, dal jsem tam nepatrné 10ms zpoždění:
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=3&topic=34 204
los
Profil *
Joker
A vymenil si tie dva riadky (img.src=... s img.onload=...)?

Bubák
To pred rokom bolo zrejme kvôli tomu, že sa funkcia onload vykonala skôr než schovej.
Najjednoduchšie riešenie by vtedy bolo nastaviť na začiatku JavaScriptom triedu pre celú stránku (document.documentElement.className = 'js'), pridať pravidlo do štýlu (.js #obrazek {visibility: hidden}) a na onload zobrazovať tak, ako si to mal.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0