Страницы: 1
В расширении есть browser, в который грузится страничка. Необходимо подменить стилевой файл (.css), подсунув стили из расширения. (необходимо что-бы страничка отрисовывалась с подмененными стилями.)
зы. перечитал большую часть форума, кое что понял но для меня это пока заумно, если можно - маленький пример, как это сделать
Отсутствует
Насколько я понимаю необходим сервис для перехвата запросов
var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
потом инициализировать собственно перехват для нашего объекта mainBrowser
какая функция будет обрабатывать эти перехваты? у нее определенное имя?? что-то типа
mainBrowser.observe = function(object, string, data){ if(string = "http-on-modify-request"){ object.QueryInterface(Components.interfaces.nsIHttpChannel); /* и тут делаем свое "грязное" дело проверяем что это запрос css (как?) */ } }
и как это все потом вернуть?
опять Components.classes["@mozilla.org/***
Отсутствует
вот такая конструкция получилась
запускается все под XULRunner
browser.addEventListener("DOMContentLoaded", startBrowser, true); function startBrowser(){ contentBrowser = browser.contentDocument; alert("1: " + contentBrowser.getElementsByTagName('link')[0].href); contentBrowser.getElementsByTagName('link')[0].href = ""; alert("2: " + contentBrowser.getElementsByTagName('link')[0].href); contentBrowser.getElementsByTagName('link')[0].href = "chrome://TestBrowser/content/style.css"; alert("3: " + contentBrowser.getElementsByTagName('link')[0].href); contentBrowser.getElementsByTagName('link')[0].href = "file:///home/username/prj/project/testbrowser/chrome/content/style.css"; alert("4: " + contentBrowser.getElementsByTagName('link')[0].href); }
все 4 алерта показывают разные значения, но моя таблица стилей не цепляется
Отсутствует
Страницы: 1