Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему onload срабатывает до того как картинка полностью проявится? (https://javascript.ru/forum/misc/39284-pochemu-onload-srabatyvaet-do-togo-kak-kartinka-polnostyu-proyavitsya.html)

vadim5june 24.06.2013 09:49

c link тоже должен onload работать
http://www.w3schools.com/jsref/event_onload.asp
там написано работает с
<body>, <frame>, <frameset>, <iframe>, <img>, <input type="image">, <link>, <script>, <style>

koeshiro 24.06.2013 13:01

vadim5june,
сделал вот так.
<script>for(i=0;i<15;i++)
{doc=document.getElementsByTagName('img')[i]; doc.onload=function()
{fdoc=document.getElementsByTagName('img')[i]; ImgSrc=doc.getAttribute("src");ImgId=doc.id;alert(ImgSrc);}}
</script>
Браузер мгновенно досчитывает до 15 и выводит только адрес последней картинки.

vadim5june 24.06.2013 13:09

Цитата:

Сообщение от koeshiro (Сообщение 258128)
vadim5june,
сделал вот так.
<script>for(i=0;i<15;i++)
{doc=document.getElementsByTagName('img')[i]; doc.onload=function()
{fdoc=document.getElementsByTagName('img')[i]; ImgSrc=doc.getAttribute("src");ImgId=doc.id;alert(ImgSrc);}}
</script>
Браузер мгновенно досчитывает до 15 и выводит только адрес последней картинки.

там внутри onload i не надо использовать там this на картинку указывает
ImgSrc=this.getAttribute("src");
for(i=0;i<15;i++)
{doc=document.getElementsByTagName('img')[i]; doc.onload=function()
{var ImgSrc=this.getAttribute("src");var ImgId=this.id;alert(ImgSrc);}}

koeshiro 24.06.2013 13:15

Цитата:

Сообщение от vadim5june (Сообщение 258129)
там внутри onload i не надо использовать там this на картинку указывает
ImgSrc=this.getAttribute("src");
for(i=0;i<15;i++)
{doc=document.getElementsByTagName('img')[i]; doc.onload=function()
{var ImgSrc=this.getAttribute("src");var ImgId=this.id;alert(ImgSrc);}}

Почему о токих вещях не говориться в учебнике на этом сайте? :blink:

vadim5june 24.06.2013 13:18

Цитата:

Сообщение от koeshiro (Сообщение 258132)
Почему о токих вещях не говориться в учебнике на этом сайте? :blink:

учебник здесь хороший-наверно не все читали
про асинхронные процессы поищите

koeshiro 24.06.2013 13:20

Цитата:

Сообщение от vadim5june (Сообщение 258136)
учебник здесь хороший-наверно не все читали

Может быть. А может просто чего-то не понял :)

рони 24.06.2013 13:24

Цитата:

Сообщение от koeshiro
Браузер мгновенно досчитывает до 15 и выводит только адрес последней картинки

Пример ошибочного использования

vadim5june 24.06.2013 13:25

Цитата:

Сообщение от koeshiro
А может просто чего-то не понял

цикл выполняется сразу
for(i=0;i<15;i++)
а загрузка картинок через некоторое время-ясно что i=15 для всех поэтому нельзя использовать

koeshiro 24.06.2013 13:40

vadim5june,
если использовать так. То не работает вовсе .-.
<script>for(i=0;i<15;i++)
{doc=document.getElementsByTagName('img')[i]; doc.onload=function()
{fdoc=document.getElementsByTagName('img')[this]; ImgSrc=fdoc.getAttribute("src");ImgId=fdoc.id;alert(ImgSrc);}}
</script>
Но я тут глупанул. Да ещё всем о своей глупости рассказал XD

koeshiro 24.06.2013 13:42

Ладно Всё работает. Нужно будет только аформление придумать. И всякую мелочь.


Часовой пояс GMT +3, время: 15:28.