Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Начало загрузки изображения (https://javascript.ru/forum/jquery/36304-nachalo-zagruzki-izobrazheniya.html)

BorisBritva 11.03.2013 14:34

Начало загрузки изображения
 
Как можно отследить именно начало загрузки изображения при изменении src в img? Либо непосредственно изменение src у изображения если их много?

BorisBritva 11.03.2013 15:04

Что неправильно?

$('img').click(function(){
setTimeout(new_src($(this)), 3000);
});

function new_src(e) {
e.attr('src','http://vorsite.com/retrttrfgtr');
}


Нужно, чтобы src у ссылки изменился через 3 секунды, а он меняется сразу!

Отслеживаю вот так!

$('img').click(function(){setInterval(action($(this)),0);});

function action(e){
var host = e.attr('src').split('/');
if(host[2]!=location.hostname) alert(host[2]);
}


Вывод в alert`e хоста сайта, к которому грузится img явно раньше чем 3 секунды! Ставь хоть пять, хоть 10 секунд. Один фиг выводит сразу после клика!

danik.js 11.03.2013 15:06

<base href="http://javascript.ru/forum/">
<img id="image" src="images/smilies/smile.gif">
<button onclick="window.image.src = 'images/smilies/tongue.gif'">Сменить src</button>
<script>
(function(){
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;

var observer = new MutationObserver(function(records){
    for (var i = 0, record; record = records[i]; i++) {
        if (record.attributeName == 'src') {
            alert('Атрибут src изменен!');
        }
    }
});
observer.observe(window.image, {attributes: true});
})();
</script>

danik.js 11.03.2013 15:08

Цитата:

Сообщение от BorisBritva
Что неправильно?

setTimeout(alert('AAAA'), 1000000);
Что неправильно?

BorisBritva 11.03.2013 15:22

Так все заменяется, но не через 3 секунды, а сразу.

BorisBritva 11.03.2013 15:26

Цитата:

Сообщение от danik.js (Сообщение 240002)
<base href="http://javascript.ru/forum/">
<img id="image" src="images/smilies/smile.gif">
<button onclick="window.image.src = 'images/smilies/tongue.gif'">Сменить src</button>
<script>
(function(){
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;

var observer = new MutationObserver(function(records){
    for (var i = 0, record; record = records[i]; i++) {
        if (record.attributeName == 'src') {
            alert('Атрибут src изменен!');
        }
    }
});
observer.observe(window.image, {attributes: true});
})();
</script>

Попробывал. Не работает.

danik.js 11.03.2013 15:39

Цитата:

Сообщение от BorisBritva
Попробывал. Не работает.

IE или Opera? Там надо MutationEvent использовать. В старых ослах - onpropertychange

BorisBritva 11.03.2013 15:53

Блин. Все равно не работает!

danik.js 11.03.2013 16:05

Арбуз

BorisBritva 11.03.2013 16:10

Цитата:

Сообщение от danik.js (Сообщение 240014)
Арбуз

Что это?


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