
06.11.2016, 20:24
|
|
Интересующийся
|
|
Регистрация: 13.09.2016
Сообщений: 13
|
|
|
Модификация в реал-тайме ("на лету") загружаемой в Firefox веб-страницы. Возможно ли?
Хочу написать расширение (аддон) Firefox, которое позволяет править/парсить HTML и CSS код загружаемой странички "на лету" и выдавать её в заданном юзверем стиле.
Т.е., типа, юзверь пишет свой скрипт, и этот скрипт автоматически приаттачивается к страницам, с заданными ювзерем URL-ами.
К примеру, хочу я чтобы выдача яндекса отображалась в виде EXCEL-таблички, с графами "Домен", "Ключевые слова", "посещалась/не посещалась ссылка".
Тогда я в этом расширении задаю, что нужно вырезать из кода страницы выдачи яндекса, что добавить, что подправить и теперь браузер прежде чем отобразить страницу яндекса сначала "шлифует" её моим скриптом.
Возможно ли такое написать на JavaScript?
В частности, мне нужно "повыкусывать" из выдачи яндексы сниппеты, в которых содержаться факты, которые уже есть в моей базе данных или в "черном списке". Как это можно сделать?
|
|

06.11.2016, 20:48
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,618
|
|
Всё возможно. Однако именно "на лету" можно работать только с чистым текстом(а точнее даже бинарными данными) и кусками(что очевидно). Если же нужна структура документа, то тут уж придётся подождать загрузки и (частичной) обработки.
Для второго достаточно greasemonkey, смысла городить ещё чего - нет. В первом же случае скорее всего потребуется обзёрвер на http-on-examine-response. Или иные варианты.
__________________
29375, 35
Последний раз редактировалось Aetae, 06.11.2016 в 20:51.
|
|

06.11.2016, 21:36
|
|
Интересующийся
|
|
Регистрация: 13.09.2016
Сообщений: 13
|
|
|
Сообщение от Aetae
|
|
Однако именно "на лету" можно работать только с чистым текстом
|
А на другом форуме мне сказали, что аддон Firefox с названием Greasemonkey это делает на раз.
Т.е. запускает скрипт, который правит код веб-страницы на лету и юзверь видит в броузере уже не оригинальную веб-страницу, а её версию, обработанную юзер-скриптом.
В частности, может видеть выдачу яндекса с выкущенными сниппетами в виде Excel-таблички.
Это так?
В смысле, можно так скриптами сделать в броузере?
|
|

06.11.2016, 21:39
|
|
Интересующийся
|
|
Регистрация: 13.09.2016
Сообщений: 13
|
|
|
Тут я вижу пока только одну проблему: запись и чтение с харда.
Насколько мне известно, политика безопасности запрещает JS-коду выполнять чтение и запись с харда.
И как тогда реализовать взаимодействие моего скрипта с базой знаний на харде?
|
|

06.11.2016, 21:56
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,618
|
|
Сообщение от Исмаил Прокопенко
|
|
А на другом форуме мне сказали, что аддон Firefox с названием Greasemonkey это делает на раз.
|
Он не имеет доступа к исходным данным до их обработки движком. Можно запускать скрипт с параметром
//@run-at document-start
и удалять ненужные элементы по мере их появления. Можно это даже обставить так, что пользователь не заметит. Но какое-то время они всё же будут присутствовать в документе.
Сообщение от Исмаил Прокопенко
|
Насколько мне известно, политика безопасности запрещает JS-коду выполнять чтение и запись с харда.
И как тогда реализовать взаимодействие моего скрипта с базой знаний на харде?
|
В веб песочнице - никак.
Если же вы пишете расширение - то у вас есть доступ к потрохам браузера, и творить с системой юзера вы можете что хотите.
При использовании greasemonkey остаётся только indexdDB или GM_set\ getValue.
__________________
29375, 35
|
|

06.11.2016, 22:06
|
|
Интересующийся
|
|
Регистрация: 13.09.2016
Сообщений: 13
|
|
|
Сообщение от Aetae
|
|
Он не имеет доступа к исходным данным до их обработки движком.
|
Пофиг если :
|
Сообщение от Aetae
|
|
Можно это даже обставить так, что пользователь не заметит.
|
Главное чтобы в итоге веб-страничка выглядела так, как обработал ее мой парсер
|
|

06.11.2016, 22:08
|
|
Интересующийся
|
|
Регистрация: 13.09.2016
Сообщений: 13
|
|
|
Сообщение от Aetae
|
В веб песочнице - никак.
Если же вы пишете расширение - то у вас есть доступ к потрохам браузера, и творить с системой юзера вы можете что хотите.
|
Никогда этого не понимал.
Ведь аддон - это тот же ява скрипт.
Тогда ява скрипт аддона может читать и писать на хард юзверя, а просто ява скрипт не может.
Где находится тот "флажок", который разрешает/запрещает доступ к харду клиента?
|
|

06.11.2016, 22:14
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,618
|
|
Исмаил Прокопенко, браузеры предоставляют аддонам API для небезопасных действий. И если API того же хрома довольно скуден, то в Firefox картина совсем другая, ибо сам firefox наполовину работает на javascript, а другая половина прокинута внутрь привилегированно кода с помощью обёрток.
__________________
29375, 35
|
|

07.11.2016, 02:12
|
|
Интересующийся
|
|
Регистрация: 13.09.2016
Сообщений: 13
|
|
|
Сообщение от Aetae
|
|
браузеры предоставляют аддонам API для небезопасных действий.
|
Т.е. я могу написать скрипт на JS, который для записи и чтения с харда будет использовать API Firefox?
|
|

07.11.2016, 02:32
|
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Исмаил Прокопенко,
В старой опере была такая фича 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 и т.д.
Т.е вся соль что правка на "Лету" - реально будет десятки минут
Последний раз редактировалось Deff, 07.11.2016 в 02:35.
|
|
|
|