|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Разукрашивание сайтов по-своему, подменой CSS и Классов |
|
[решено] Разукрашивание сайтов по-своему, подменой CSS и Классов
|
Старый параноик Сообщения: 2423 |
Профиль | Отправить PM | Цитировать
Здравствуйте. Речь пойдёт о Firefox и её возможностях.
Требуется помощь специалиста по классам и стилям. Вот такой я букмарклет когда-то написал: javascript:(function(){var i,x,o,r,nw;nw=window.open('','css','');nw.document.open();nw.document.writeln('@-moz-document url-prefix(%22http://'+document.location.host+'/%22) {<br>');for(i=0;i<document.styleSheets.length;i++){try{x=document.styleSheets[ i];r=x.cssRules;}catch(e){r=null;alert('Oops. Access denied.');}if(!r)continue;for(j=0;j<r.length;j++){o=r[j].cssText;if(o.indexOf('rgb')==-1)continue;nw.document.writeln(o.replace(/\);/g,') !important;')+'<br>');}}nw.document.writeln('}<br>');nw.document.close();})() Он выводит в окошко список стилей CSS для текущего открытого сайта (точнее, страницы, но как правило, на форумах и сайтах используются общие CSS) и для каждого стиля помечает цвет специальным словом "!important". Зачем это всё? Открываете файл C:\Documents and Settings\ИмяПользователя\Application Data\Mozilla\Firefox\Profiles\ВашПрофиль\chrome\userContent.css Копируете текст из открытого окна со стилями в конец файла, удаляете ненужное, правите цвета, как Вам хочется - и сайт открываться будет в приятной для Вас расцветке. На самом деле, этот букмарклет - лишь вторая часть из более серьёзного проекта :] "раскрась свой форум по своему вкусу". И использовать его с толком смогут только продвинутые пользователи :] К ним у меня как раз вопрос. Как видно, затрагивается только CSS. Но есть куча сайтов, где используются какие-то классы. Например, берём осзоновскую головную страницу.
Видим нечто вида /div class="smallfont"/ Вот это класс через подмену CSS не изменяется. Или изменяется всё-таки? Как быть? Можно ли заменить что-то в таблице стилей, чтобы повлиять на класс? |
|
Отправлено: 09:43, 19-10-2006 |
Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать Цитата:
В ЯвеСкрипте не было ограничений по этому поводу??? Или возможно я чтото путую.... |
|
------- Отправлено: 19:14, 19-10-2006 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Обнаружил у себяя пару неувязок в скрипте, сейчас пробую по-другому. Правда, результаты всё теже...
Вот что интересно, если записать страницу на диск, всё нормально работает... Не понимаю. >> В ЯвеСкрипте не было ограничений по этому поводу??? Можетбыть; правда, там вроде с XHttpRequest какие-то проблемы, а не с css... Style sheets in http://win.mail.ru/cgi-bin/login?noclear=1&page=start Inline style sheet #superbest { position: absolute; left: 15; top: 150; width: 125; visibility: visible; z-index: 10; } link rel="stylesheet" href="http://img.mail.ru/mail/ru/css/mail-main1.css" тут погнали CSS link rel="stylesheet" href="http://img.mail.ru/mail/ru/css/mail-second.css" тут погнали CSS Style sheets in http://www.forum.oszone.net/post-500276.html#post500276 link rel="stylesheet" href="http://www.forum.oszone.net/clientscript/vbulletin_css/style-b9b713f6-00006.css" javascript:s=document.getElementsByTagName('STYLE'); ex=document.getElementsByTagName('LINK'); d=window.open().document; /*set base href*/d.open();d.close(); b=d.body; function trim(s){return s.replace(/^\s*\n/, '').replace(/\s*$/, ''); }; function iff(a,b,c){return b?a+b+c:'';}function add(h){b.appendChild(h);} function makeTag(t){return document.createElement(t);} function makeText(tag,text){t=makeTag(tag);t.appendChild(document.createTextNode(text)); return t;} add(makeText('style', 'iframe{width:100%;height:18em;border:1px solid;')); add(makeText('h3', d.title='Style sheets in ' + location.href)); for(i=0; i<s.length; ++i) { add(makeText('h4','Inline style sheet' + iff(' title=%22',s[i].title,'%22'))); add(makeText('pre', trim(s[i].innerHTML))); } for (i=0; i<ex.length; ++i) { rs=ex[i].rel.split(' '); for(j=0;j<rs.length;++j) if (rs[j].toLowerCase()=='stylesheet') { add(makeText('h4','link rel=%22' + ex[i].rel + '%22 href=%22' + ex[i].href + '%22' + iff(' title=%22',ex[i].title,'%22'))); iframe=makeTag('iframe'); iframe.src=ex[i].href; add(iframe); break; } } void 0 |
Отправлено: 23:15, 19-10-2006 | #12 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать B DOMInspector'е все стили видны (Document->Stylesheet).
Может ли дело быть в том, что страница hххp://win.mail.ru, а стили - с hххp://img.mail.ru? |
Отправлено: 23:30, 19-10-2006 | #13 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать *грустно*
Цитата:
Ч.Т.Д. Ok, проблема снята. Поправленный букмарклет из головной поста javascript:(function(){var i,x,o,r,nw;nw=window.open('','css','');nw.document.open();nw.document.writeln('@-moz-document url-prefix(%22http://'+document.location.host+'/%22) {<br>');for(i=0;i<document.styleSheets.length;i++){try{x=document.styleSheets[i];r=x.cssRules;}catch(e){r=null;alert('Oops. Access denied.');}if(!r)continue;for(j=0;j<r.length;j++){o=r[j].cssText;if(o.indexOf('rgb')==-1)continue;nw.document.writeln(o.replace(/\);/g,') !important;')+'<br>');}}nw.document.writeln('}<br>');nw.document.close();})() |
|
Отправлено: 00:43, 20-10-2006 | #14 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Извиняюсь, а зачем алерт? Не проще просто текстом, выделяя подчеркиванием, к примеру. Алерты они вредные очень просто - требуют не только внимания, но и действий .
|
------- Отправлено: 00:51, 20-10-2006 | #15 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Чтобы было видно, что "не прокатило". Тогда пользователь будет знать, что делать. А делать ему придётся следующее: записывать файл (страницу) на диск и оттуда уже выгребать цвета, останется только сменить имя hxxp:// в начале правил. Кстати, ещё неизвестно, как это всё сработает...
Напоследок, гм, примечание (замеченные типа недостатки). 1. Букмарклет выписывает не все CSS-правила, а только те, что так или иначе определяют цвета. Но вот body - не выписывает. 2. Если в html-тексте (например, для <div class="моёчёто">) будут употреблены собственные стили, которых нет, их скрипт не вытащит (это описано выше, но я повторяю) 3. Если в html-тексте (например, для <div style="color=#123456 !important">) будут определены собственные стили, их скрипт тоже не вытащит. Ну и трабла с доменами. Теоретически можно наваять вытягивание стилей и оттуда, парсинг и т.п. - но на фиг :] Проще сохранить и переоткрыть... |
Отправлено: 01:01, 20-10-2006 | #16 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать 4. Аналогично п.3, не вытаскиваются данные из <font color="red">
|
Отправлено: 01:21, 20-10-2006 | #17 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Порядок построения классов | pva | Программирование и базы данных | 13 | 23-03-2009 14:36 | |
Php. Поиск документации для начинающих по использованию классов. | BarsMaster | Вебмастеру | 5 | 10-01-2007 21:44 | |
*Теория* | Умное разукрашивание, RGB в градацию серого | hasherfrog | Программирование и базы данных | 22 | 11-11-2006 19:57 | |
[решено] CSS | RasKolbas | Вебмастеру | 6 | 09-11-2005 14:36 | |
Reverse ingineering классов (обратно UML-диаграмме) | djogik | Программирование и базы данных | 1 | 12-01-2005 21:29 |
|