Почему onload срабатывает до того как картинка полностью проявится?
Здрасте. Я тут хотел сделать проверку загрузились ли все картинки на странице(Подобное хотел сделать со скриптами и линками но не знаю как =\) но когда проверял в хроме добавил трёхтонные картинки и счётчик который я сделал досчитал до 15(количество картинок) до того как они все были полностью отображены. Не подскажете почему?
x=0; for(i=0;i<15;i++){document.getElementsByTagName('img')[x].onload=alert(x);x++;} |
может так
var x=0; for(i=0;i<15;i++){document.getElementsByTagName('img')[i].onload=function(){alert(x);x++;}} скрипты поддерживают onload и onerror var sc=document.createElement('script'); sc.onload=function(){alert('load')}; sc.onerror=function(){alert('error')}; sc.src='tratata.js'; document.head.appendChild(sc); |
vadim5june,
такая, казалось бы мелоч, но сработало. Просто поставит [i] в замену [x] и картинки отрисоваились сразу после того как счёт закончился. :victory: |
Цитата:
|
Цитата:
можно так писать <script src='1.js' onload='f(this)' onerror='er(this)'></script> <script>function f(t){alert(t.src+'-loaded')}</script> |
Цитата:
|
Цитата:
|
Цитата:
о каких скобках речь? |
Цитата:
|
Стоп а с линками тоже самое что ли?
|
c link тоже должен onload работать
http://www.w3schools.com/jsref/event_onload.asp там написано работает с <body>, <frame>, <frameset>, <iframe>, <img>, <input type="image">, <link>, <script>, <style> |
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 и выводит только адрес последней картинки. |
Цитата:
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);}} |
Цитата:
|
Цитата:
про асинхронные процессы поищите |
Цитата:
|
Цитата:
|
Цитата:
for(i=0;i<15;i++) а загрузка картинок через некоторое время-ясно что i=15 для всех поэтому нельзя использовать |
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 |
Ладно Всё работает. Нужно будет только аформление придумать. И всякую мелочь.
|
Зачем внутри цикла каждый раз обращаться к функции getElementsByTagName()?
function imgLoad() { //code } var imgs = document.getElementsByTagName('img'); for(i=0; i<imgs.length; i++) imgs[i].onload = imgLoad; |
Цитата:
|
Часовой пояс GMT +3, время: 18:14. |