Есть определённый сайт, форум. Хочу сделать расширение чтобы можно было с помощью него менять стиль форума.
Его stylesheet подгружается такой строчкой
<style type="text/css" media="all">@import url(http://diesel.elcat.kg/style_images/css_6.css);</style>

Задача сводится к тому чтобы определить событие начало загрузки документа, перехватить загрузку css и подставить свой локальный файл css.
Каким образом это можно сделать? подскажите

Может есть более простой способ изменить стиль? в частности цвета

В зависимости от версии FF есть разные варианты решения.
Какая версия?

P.S.: Что даёт поиск по форуму?

SOb
версия 1.5.0.4
расширение ориентированно на 1.5хх

Все подобные темы перечитал, с самого начала плюс др источники. Максимум что нашёл это как можно перехватить начало загрузки страницы (наткнулся на страничку где автор рассказывает как он делал расширение imglikeopera). А вот как перехватить загрузку css ни где не встречал.

Посмотри, как сделан Stylish и почитай про принцип работы userContent.css… может и не нужно ничего на лету подменять?

SOb
да, userContent.css меня обнадёживает что можно менять стиль, пока не нашёл как он это делает, буду искать.
Не знаю что такое Stylish, найду и посмотрю что и как он делает, спасибо за совет :)
upgrate
нашёл что такое Stylish, буду изучать

да, userContent.css меня обнадёживает что можно менять стиль, пока не нашёл как он это делает, буду искать.

В смысле как делает? Просто при загрузке страницы он автоматически подставляет пользовательские таблицы стилей, указанные в нем.

igorsub

В смысле как делает? Просто при загрузке страницы он автоматически подставляет пользовательские таблицы стилей, указанные в нем.

И как подобное можно сделать из расширения?

Stylish, интересная штука, похоже какразтаки то что нужно.

И как подобное можно сделать из расширения?

Это не расширение, это файл.
http://forum.mozilla.ru/doku.php?id=firefox:tips:usercontent.css

Правда он общего действия, то есть если ты укажешь, например,

Выделить код

Код:

H1 { font-size: 200px; }

то настройка будет действовать на всех страницах, где есть селектор H1. Для конкретизации лучше использовать расширение Stylish.

igorsub
Я знаю что это файл :)
Но мне интересен механизм его действия (как и на каком этапе изменяется стиль страницы), чтобы повторить этот механизм в своём расширении.
Узнал про Stylish, теперь он мне будет наглядным примером :)
А может уже не чего не буду мудрить, Stylish делает всё что нужно, только один странный глюк, изменения не вступают в силу после перезагрузки страницы, нужно включить/выключить  фильтр чтобы изменения вступили в силу. Может этот глюк только у меня, из-за медленного канала (28.8 Кбит/с) или ещё чего то.
Написал об этом тут, чтобы разобратся
http://forum.mozilla.ru/viewtopic.php?pid=118589#p118589

Может этот глюк только у меня, из-за медленного канала (28.8 Кбит/с)

Сомневаюсь, что подстановка своего стиля имеет какое-то отношение к соединению с сетью. ;) Это, скорей, особенность расширения, неприятная особенность. :/

igorsub
Так это нормально? у всех так?
Интересно как его устранить?
в смысле логически, например
1). Если включать фильтр после загрузки страницы, то она будет неприятно "дёргатся" и "мигать", особенно это сильно заметно будет на медленных каналах. Но хоть чтото.
2). Если включать в начале загрузки страницы, то наверно не будет изменений, потому что не к чему их будет делать, элементы ещё не загрузились.
3) Идеально, если по мере загрузки элементов страницы меняется их стиль, но как это сделать?

Интересно, как это реализовано в Опере, на каком этапе применяются их фильтры.

А может уже не чего не буду мудрить, Stylish делает всё что нужно, только один странный глюк, изменения не вступают в силу после перезагрузки страницы, нужно включить/выключить  фильтр чтобы изменения вступили в силу.

не все изменения пропадают, например изменение цвета текста в body, остаётся, но в body много div'ов (весь форум фактически построен на div'ах) вот изменения в них пропадают.
Попробовал тежи самые изменения сделать через  userContent.css, тоже самое (точнее то что касается div'ов никаких изменений)

Можно подумать что это баг не просто Stylish'а, а Firefox'а, точнее механизма изменения стиля.

Попробовал тежи самые изменения сделать через  userContent.css, тоже самое (точнее то что касается div'ов никаких изменений)

Чтобы начали применяться пользовательские стили, нужно после каждого значения дописывать !important. Это важно!

igorsub
Большое спасибо, всё работает !! :)

Кстате про userContent.css

Правда он общего действия, то есть если ты укажешь, например,

Выделить код

Код:

Код:
H1 { font-size: 200px; }

то настройка будет действовать на всех страницах, где есть селектор H1. Для конкретизации лучше использовать расширение Stylish.

Чтобы настройки действовали по доменам или даже на определённые страницы, то можно сделать также как и в Stylish

Выделить код

Код:

@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("namedomain.com") {
...
}

или

Выделить код

Код:

@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document url("http://forum.mozilla.ru/edit.php?id=118622") {
...
}

Чтобы настройки действовали по доменам или даже на определённые страницы, то можно сделать также как и в Stylish

Кстати, я как-то не подумал вставить в userChrome.css код из Stylish. Спасибо за подсказку. ;)

Маленький пример:
http://fforum.kochegarov.com/index.php?showtopic=12893&view=findpost&p=157972

Маленький пример:

Тоже маленький пример, точнее описание как с помощью Stylish'a разукрасить сайт, на примере моего любимого форума :)
http://diesel.elcat.kg/index.php?automodule=blog&blogid=5&showentry=1673

Поправка - лучше пишите не DOM, а DOM Inspector - потому что DOM это механизм, имеющийся в браузере по умолчанию - система адресации и структуры страницы.
Инструкция вполне толковая.

Al_H
Исправил

Еще желательно заменить словосочетание "кустом установка" на что-то более удобоваримое.

Еще желательно заменить словосочетание "кустом установка" на что-то более удобоваримое.

Если писать настоящее грамотное пособие, то там много чего нужно исправить :)
"кустом установка" - исправил.