Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.11.2016, 20:24
Интересующийся
Отправить личное сообщение для Исмаил Прокопенко Посмотреть профиль Найти все сообщения от Исмаил Прокопенко
 
Регистрация: 13.09.2016
Сообщений: 13

Модификация в реал-тайме ("на лету") загружаемой в Firefox веб-страницы. Возможно ли?
Хочу написать расширение (аддон) Firefox, которое позволяет править/парсить HTML и CSS код загружаемой странички "на лету" и выдавать её в заданном юзверем стиле.

Т.е., типа, юзверь пишет свой скрипт, и этот скрипт автоматически приаттачивается к страницам, с заданными ювзерем URL-ами.

К примеру, хочу я чтобы выдача яндекса отображалась в виде EXCEL-таблички, с графами "Домен", "Ключевые слова", "посещалась/не посещалась ссылка".

Тогда я в этом расширении задаю, что нужно вырезать из кода страницы выдачи яндекса, что добавить, что подправить и теперь браузер прежде чем отобразить страницу яндекса сначала "шлифует" её моим скриптом.

Возможно ли такое написать на JavaScript?


В частности, мне нужно "повыкусывать" из выдачи яндексы сниппеты, в которых содержаться факты, которые уже есть в моей базе данных или в "черном списке". Как это можно сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 06.11.2016, 20:48
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Всё возможно. Однако именно "на лету" можно работать только с чистым текстом(а точнее даже бинарными данными) и кусками(что очевидно). Если же нужна структура документа, то тут уж придётся подождать загрузки и (частичной) обработки.
Для второго достаточно greasemonkey, смысла городить ещё чего - нет. В первом же случае скорее всего потребуется обзёрвер на http-on-examine-response. Или иные варианты.
__________________
29375, 35

Последний раз редактировалось Aetae, 06.11.2016 в 20:51.
Ответить с цитированием
  #3 (permalink)  
Старый 06.11.2016, 21:36
Интересующийся
Отправить личное сообщение для Исмаил Прокопенко Посмотреть профиль Найти все сообщения от Исмаил Прокопенко
 
Регистрация: 13.09.2016
Сообщений: 13

Сообщение от Aetae
Однако именно "на лету" можно работать только с чистым текстом
А на другом форуме мне сказали, что аддон Firefox с названием Greasemonkey это делает на раз.
Т.е. запускает скрипт, который правит код веб-страницы на лету и юзверь видит в броузере уже не оригинальную веб-страницу, а её версию, обработанную юзер-скриптом.

В частности, может видеть выдачу яндекса с выкущенными сниппетами в виде Excel-таблички.

Это так?
В смысле, можно так скриптами сделать в броузере?
Ответить с цитированием
  #4 (permalink)  
Старый 06.11.2016, 21:39
Интересующийся
Отправить личное сообщение для Исмаил Прокопенко Посмотреть профиль Найти все сообщения от Исмаил Прокопенко
 
Регистрация: 13.09.2016
Сообщений: 13

Тут я вижу пока только одну проблему: запись и чтение с харда.
Насколько мне известно, политика безопасности запрещает JS-коду выполнять чтение и запись с харда.

И как тогда реализовать взаимодействие моего скрипта с базой знаний на харде?
Ответить с цитированием
  #5 (permalink)  
Старый 06.11.2016, 21:56
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Сообщение от Исмаил Прокопенко Посмотреть сообщение
А на другом форуме мне сказали, что аддон Firefox с названием Greasemonkey это делает на раз.
Он не имеет доступа к исходным данным до их обработки движком. Можно запускать скрипт с параметром
//@run-at document-start
и удалять ненужные элементы по мере их появления. Можно это даже обставить так, что пользователь не заметит. Но какое-то время они всё же будут присутствовать в документе.

Сообщение от Исмаил Прокопенко Посмотреть сообщение
Насколько мне известно, политика безопасности запрещает JS-коду выполнять чтение и запись с харда.
И как тогда реализовать взаимодействие моего скрипта с базой знаний на харде?
В веб песочнице - никак.
Если же вы пишете расширение - то у вас есть доступ к потрохам браузера, и творить с системой юзера вы можете что хотите.
При использовании greasemonkey остаётся только indexdDB или GM_set\getValue.
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 06.11.2016, 22:06
Интересующийся
Отправить личное сообщение для Исмаил Прокопенко Посмотреть профиль Найти все сообщения от Исмаил Прокопенко
 
Регистрация: 13.09.2016
Сообщений: 13

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

Сообщение от Aetae
В веб песочнице - никак.
Если же вы пишете расширение - то у вас есть доступ к потрохам браузера, и творить с системой юзера вы можете что хотите.
Никогда этого не понимал.
Ведь аддон - это тот же ява скрипт.
Тогда ява скрипт аддона может читать и писать на хард юзверя, а просто ява скрипт не может.

Где находится тот "флажок", который разрешает/запрещает доступ к харду клиента?
Ответить с цитированием
  #8 (permalink)  
Старый 06.11.2016, 22:14
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Исмаил Прокопенко, браузеры предоставляют аддонам API для небезопасных действий. И если API того же хрома довольно скуден, то в Firefox картина совсем другая, ибо сам firefox наполовину работает на javascript, а другая половина прокинута внутрь привилегированно кода с помощью обёрток.
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 07.11.2016, 02:12
Интересующийся
Отправить личное сообщение для Исмаил Прокопенко Посмотреть профиль Найти все сообщения от Исмаил Прокопенко
 
Регистрация: 13.09.2016
Сообщений: 13

Сообщение от Aetae
браузеры предоставляют аддонам API для небезопасных действий.
Т.е. я могу написать скрипт на JS, который для записи и чтения с харда будет использовать API Firefox?
Ответить с цитированием
  #10 (permalink)  
Старый 07.11.2016, 02:32
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 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.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск