Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как найти не привязанную картинку созданную через new Image (https://javascript.ru/forum/events/41222-kak-najjti-ne-privyazannuyu-kartinku-sozdannuyu-cherez-new-image.html)

Geograph 04.09.2013 15:54

Как найти не привязанную картинку созданную через new Image
 
Хочу с помощью JS-кода узнать есть ли счетчик от liveinternet на странице. У liveinternet есть вариант скрытого счетчика примерно с таким содержимым:
new Image().src = "//counter.yadro.ru/hit?r"+
escape(document.referrer)+((typeof(screen)=="undefined")?"":
";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
";h"+escape(document.title.substring(0,80))+
";"+Math.random();

т.е. картинка не привязывается (appendChild) ни к какому элементу страницы и ее нет в document.images
Можно ли как-то найти эту картинку?

Думаю можно еще document.scripts перебирать и по innerHTML находить нужный скрипт, но это работает только если liveinternet скрипт вставлен между тегами <script>, если его вынесут в отдельный файл это не сработает.

Octane 05.09.2013 04:46

var ImageOrigin = Image;

window.Image = function () {
	var img = new ImageOrigin();
	Object.defineProperty(this, "src", {
		set: function (url) {
			img.src = url;
			alert("new Image: " + url);
		}
	});
};

new Image().src = "//counter.yadro.ru/hit…";

Geograph 05.09.2013 06:36

Спасибо, отличная идея. :thanks:

А если скрипт создания картинки будет раньше моего скрипта, то никак не получится перехватить?


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