Модификация в реал-тайме ("на лету") загружаемой в Firefox веб-страницы. Возможно ли?
Хочу написать расширение (аддон) Firefox, которое позволяет править/парсить HTML и CSS код загружаемой странички "на лету" и выдавать её в заданном юзверем стиле.
Т.е., типа, юзверь пишет свой скрипт, и этот скрипт автоматически приаттачивается к страницам, с заданными ювзерем URL-ами. К примеру, хочу я чтобы выдача яндекса отображалась в виде EXCEL-таблички, с графами "Домен", "Ключевые слова", "посещалась/не посещалась ссылка". Тогда я в этом расширении задаю, что нужно вырезать из кода страницы выдачи яндекса, что добавить, что подправить и теперь браузер прежде чем отобразить страницу яндекса сначала "шлифует" её моим скриптом. Возможно ли такое написать на JavaScript? В частности, мне нужно "повыкусывать" из выдачи яндексы сниппеты, в которых содержаться факты, которые уже есть в моей базе данных или в "черном списке". Как это можно сделать? |
Всё возможно. Однако именно "на лету" можно работать только с чистым текстом(а точнее даже бинарными данными) и кусками(что очевидно). Если же нужна структура документа, то тут уж придётся подождать загрузки и (частичной) обработки.
Для второго достаточно greasemonkey, смысла городить ещё чего - нет. В первом же случае скорее всего потребуется обзёрвер на http-on-examine-response. Или иные варианты. |
Цитата:
Т.е. запускает скрипт, который правит код веб-страницы на лету и юзверь видит в броузере уже не оригинальную веб-страницу, а её версию, обработанную юзер-скриптом. В частности, может видеть выдачу яндекса с выкущенными сниппетами в виде Excel-таблички. Это так? В смысле, можно так скриптами сделать в броузере? |
Тут я вижу пока только одну проблему: запись и чтение с харда.
Насколько мне известно, политика безопасности запрещает JS-коду выполнять чтение и запись с харда. И как тогда реализовать взаимодействие моего скрипта с базой знаний на харде? |
Цитата:
//@run-at document-startи удалять ненужные элементы по мере их появления. Можно это даже обставить так, что пользователь не заметит. Но какое-то время они всё же будут присутствовать в документе. Цитата:
Если же вы пишете расширение - то у вас есть доступ к потрохам браузера, и творить с системой юзера вы можете что хотите. При использовании greasemonkey остаётся только indexdDB или GM_set\getValue. |
Цитата:
Цитата:
|
Цитата:
Ведь аддон - это тот же ява скрипт. Тогда ява скрипт аддона может читать и писать на хард юзверя, а просто ява скрипт не может. Где находится тот "флажок", который разрешает/запрещает доступ к харду клиента? |
Исмаил Прокопенко, браузеры предоставляют аддонам API для небезопасных действий. И если API того же хрома довольно скуден, то в Firefox картина совсем другая, ибо сам firefox наполовину работает на javascript, а другая половина прокинута внутрь привилегированно кода с помощью обёрток.
|
Цитата:
|
Исмаил Прокопенко,
В старой опере была такая фича http://sg.uploads.ru/qCR9e.jpg Правдо стиль задавался либо дефолтный, либо файлом в настройках оперы 2. На лету совсем нет смысла, ибо страницу открыть нужно чтобы понять, что править... По идее сгородить типа бокового сайдбара, чуть сужающего экран, и там выпарсенный стиль... По идее, фича нужна лишь для избранных сайтов, с запоминаемым отредактированным стилем в двух вариантах: a) Для всего домена http://javascript.ru/ б) Для конкретной группы страниц типа http://javascript.ru/forum/... Но вообщем то занудство, зная структуру конкретного сайта можно легко сделать скрипт закладку, меняющего стиль, ибо обычный юзер вряд ли полезет в css, а кто будет лезть, знает верстку, а раз знает, (а таких будет доли процента от пользователей браузера... сможет для конкретного сайта сам сделать... Карочь стартап мудрёный и невостребованный ============ В принципе есть к примеру скрипты смены стилей для конкретных структуры сайта => http://hostjs-mybb2011.narod.ru/ChangeStyle.htm Легко перевести подобное и в скрипт-закладку, Писать универсальный... ну если ток для себя... но есть же инструменты в браузере позволяющие править стиль, а вставить подготовленное(распарсив тем же скриптом все элементы по кнопке завершения) можно уже и закладкой и сrazy monkey js и т.д. Т.е вся соль что правка на "Лету" - реально будет десятки минут |
Часовой пояс GMT +3, время: 21:03. |