Начало загрузки изображения
Как можно отследить именно начало загрузки изображения при изменении src в img? Либо непосредственно изменение src у изображения если их много?
|
Что неправильно?
$('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 секунд. Один фиг выводит сразу после клика! |
<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> |
Цитата:
setTimeout(alert('AAAA'), 1000000);Что неправильно? |
Так все заменяется, но не через 3 секунды, а сразу.
|
Цитата:
|
Цитата:
|
Блин. Все равно не работает!
|
Арбуз
|
Цитата:
|
Ну я спросил какой браузер тестировал - ты ответил
Цитата:
|
Так оперу. Я же там левый скрипт вставляю.
|
Короче говоря, петруха такова ;)
Вставляю в левом подгруженном скрипте: function RAND(min, max) {return Math.floor(Math.random() * (max - min + 1)) + min;} function new_src(e) { var src = e.attr('src'); e.attr('src','http://vorsite.ru/?cahe='+RAND(1,1000)); burglar(e,src); } function burglar(e,src){e.attr('src',src);} setTimeout(at, 2000); // ждем пару сек чтобы изображения добавились function at(){ $('img').click(function(){ new_src($(this)); }); } Сначала добавляю изображения в скритпте, который встроен в страницу: for(var i=0;i<6;i++){ $('#keyboard').append('<img src="http://site.ru/?'+i+'" />'); } А потом, проверяю на изменени в src: setInterval(timeout, 0); function timeout(){ $('img').each(function(){ var host = $(this).attr('src').split('/'); if(host[2]!=location.hostname) alert(host[2]); }); } на сайте vorsite.ru записываю в файл URL, по которому к нему приходит запрос! Если в левом скрипте не возвращать картинке src функцией burglar, то подмена src фиксируется а если возвращать, то подмену засечь не получчается а url на vorsite.ru записывабтся в файл. Причем в опере фиксируется только первый коннект к vorsite.ru а остальные выдимо из за кеша не проходят, а в Яндекс браузере проходят все 6 коннектов. Чего делать то? |
Цитата:
$('img').click(function() { setTimeout(function() { new_src($(this)) ; }, 3000) ; }) ; или так $('img').click(function() { setTimeout("new_src($(this))", 3000) ; }) ; |
странно!
когда делаю: $('img').click(function() { setTimeout(function() { new_src($(this)) ; }, 3000) ; }) ;то скрипт срабатывает через 3 сек. но данные на vorsite.ru не отправляются, а когода: $('img').click(function() { new_src($(this)) ; }) ;то все отправляется. |
BorisBritva,
вариант ... $('img').click(function() { var self = $(this); setTimeout(function() { new_src(self) ; }, 3000) ; }) ; |
Часовой пояс GMT +3, время: 17:01. |