Полезная информация

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

Разработка » Перехват загрузки картинок(FF Extension) » 27-09-2006 12:59:56

Вообщем-то да, оно изменяется, но картинка грузится с оригинального адреса. Временно сделал костыль ввиде отмены загрузки картинки, а затем прохождения по DOM и подмене своей(ну ооочень не хочется за xpcom браться) :)

Разработка » Перехват загрузки картинок(FF Extension) » 26-09-2006 15:18:44

Собственно говоря этот способ и не работает. В (http://xulplanet.mozdev.org/references/ … annel.html) и обозначено, что URI - read-only :(

Разработка » Перехват загрузки картинок(FF Extension) » 25-09-2006 18:46:55

Спасибо за ответы :)
Взял за основу BlockSite, но теперь появился новый вопрос:

Для решения задачи в таком обсервере достаточно заменить URI запроса.

Не совсем понятно, Вы предлагаете заменять прямо в Subject:

Выделить код

Код:

var observer = {
observe: function(subject, topic, data) {
.....
subject.URI.spec = "127.0.0.1.gif";
...
}

или через

Выделить код

Код:

var httpChannel = subject.QueryInterface(Components.interfaces.nsIHttpChannel);
httpChannel.setRequestHeader ?

первый способ влобовую не работает, со вторым пока не успел разобратся.


Также в BlockSite было замеченно, что у subject вызывается метод cancel

Выделить код

Код:

...
aSubject.cancel(Components.results.NS_ERROR_FAILURE);
...

Хотя в документации по nsISupports(http://www.xulplanet.com/references/xpc … sISupports)    (http://developer.mozilla.org/en/docs/nsISupports), не найдено, или я не туда смотрю ?

Разработка » Перехват загрузки картинок(FF Extension) » 22-09-2006 18:01:41

Здравствуйте!
Необходимо до загрузки картинок, подменить адрес с которого они будут загружатся, делаю так:

Выделить код

Код:

var MyClass = {
....
  doLoad: function(e) {
  	dump("\n!DOMContentLoaded!\n");

	var doc = e.originalTarget;

	var images = doc.getElementsByTagName("img");
	for(i=0; i < images.length; i++) {
		images[i].src="http://127.0.0.1/1.gif";
	}
  },
}
window.addEventListener("DOMContentLoaded", MyClass.doLoad, false); 
...

Но проблема в том, что картинки загружаются раньше, чем функция MyClass.doLoad получает управление, т.е. сначала отображаются оригинальные картинки(страница продолжает загружатся), а только потом они подменяются моей. Смотрю в исходник AdBlock и что называется - вижу фигу. Подскажите, хоть в какую сторону смотреть ?

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]