Autor Zpráva
SeparateSK
Profil
Dobrý deň, mám tento script:
<img src="favicon.png" name="incIMG">
<img src="face.png" name="incIMG">
<div name="incIMG">ahoj</div>
<script type="text/javascript">
    var incIMGp=document.getElementsByName('incIMG').length;
    var incIMGobj="";
    var incIMGw,incIMGh=0;
    for(y=0;y<=incIMGp;y++){
        incIMGobj=document.getElementsByName('incIMG')[y];
        incIMGw=incIMGobj.offsetWidth;
        incIMGh=incIMGobj.offsetHeight;
        // DEBUG: alert(incIMGobj);
        alert("Šírka "+incIMGobj+" je : "+incIMGw+"px"); //vypisuje ,ze sirka obrazkov je 0px, ale to je nejak bugnute
        if(incIMGw>=920) {
            incIMGobj.offsetWidth=920;
        }
    }
</script>

Ako je v komentári napísané: Vypisuje, že šírka obrázkov je 0px. A toto je ten problém.
Potrebujem vedieť, ako sa dá javascriptom zistiť šírka a výška obrázku.
Davex
Profil
Rozměry obrázku jsou překvapivě ve vlastnostech width a height, ale pokud se při běhu skriptu ještě nestihnou načíst, tak tam může být také nula.
SeparateSK
Profil
Ďakujem, toto pomohlo pridal som window.onload=function(){ ...môj script... }
a všetko je ok
_es
Profil
SeparateSK:
Aj obrázok má udalosť onload.
Radek9
Profil
SeparateSK:
Já bych to udělal nějak takhle (pokud potřebuješ všechny obrázky najednou):
var imgs = document.getElementsByName("incIMG"), count = 0, onloadFunc = function(){
  if(++count===imgs.length){
    for(var i=0;i<imgs.length;++i){
      alert(imgs[i].width+" × "+imgs[i].height);
    }
  }
};
for(var i=0;i<imgs.length;++i){
  imgs[i].onload = onloadFunc;
}
Pokud ne, stačí jen každému obrázku přiřadit tu samou událost a třeba s výškou a šířkou rovnou pracovat.
Chamurappi
Profil
Reaguji na Radka9:
Pokud bude obrázek v keši, nebo se z jiného důvodu načte dřív, než se zpracuje skript, onload nechytíš.
Také se může někdy někde stát, že onload vyskočí víckrát. Nevím přesně kdy a proč, ale mám experimentálně ověřeno, že se nejde spoléhat na to, že je vše načteno, jakmile se celkový počet onloadů rovná počtu obrázků.
Radek9
Profil
Chamurappi:
Aha, tak to je pro mě novinka, děkuju za poučení. Je tedy jiná (rychlejší) cesta, než nastavovat onload na window?
Chamurappi
Profil
Reaguji na Radka9:
Mít atribut onload přímo na <img>. Nebo vytvořit celý obrázek skriptem a nastavit mu onload před nastavením src.

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