Страницы: 1
Вообщем-то да, оно изменяется, но картинка грузится с оригинального адреса. Временно сделал костыль ввиде отмены загрузки картинки, а затем прохождения по DOM и подмене своей(ну ооочень не хочется за xpcom браться) :)
Собственно говоря этот способ и не работает. В (http://xulplanet.mozdev.org/references/ … annel.html) и обозначено, что URI - read-only :(
Спасибо за ответы :)
Взял за основу 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
Хотя в документации по nsISupports(http://www.xulplanet.com/references/xpc … sISupports) (http://developer.mozilla.org/en/docs/nsISupports), не найдено, или я не туда смотрю ?
…Здравствуйте!
Необходимо до загрузки картинок, подменить адрес с которого они будут загружатся, делаю так:
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 и что называется - вижу фигу. Подскажите, хоть в какую сторону смотреть ?
…Страницы: 1