Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   greasemonkey Enhanced word highlight добавить функционал (https://javascript.ru/forum/css-html-firefox-mizilla/67093-greasemonkey-enhanced-word-highlight-dobavit-funkcional.html)

OmTatSat 28.01.2017 22:33

greasemonkey Enhanced word highlight добавить функционал
 
Здравствуйте.

Начну с предыстории.
Пользовал раньше search term highlighter на Firefox 42 и не знал горя, пока не попробовал Chrome и увидел что он грузит страницы одного сайта раза в 3-4 быстрее. Решил перейти на хром, за суток трое почти нашёл альтернативные дополнения, чтобы всё было как в Firefox. Но заметил такое дело, что когда открою в хроме около 20 вкладок - всё, комп становится тормозным - оперативка заканчивается((
Начал искать браузеры на движке геко чтобы расширения firefox остались, но чтобы страницы шустрее грузились, и наткнулся на CyberFox - то, что надо, скорость загрузки примерно как у хрома, иногда чуть быстрее иногда чуть медленнее, в принципе норм разницы в разы нет. Но дело в том, что самая большая скорость загрузки страниц на последней версии 51ой, и в ней если включить search term highlighter, то страницы при его отработке подвисают на несколько секунд. По этому решил найти альтернативу, единственное что стоящее нашёл это скрипт Enhanced word highlight, правда он изначально не поддерживал кириллицу и выделял слова слишком наляписто - полностью выделяя их цветом, search term highlighter умел просто подчёркивать.

В общем ввиду отсутствия знаний JS на добавление поддержки кириллицы и подчёркивания заместо выделения ушло 2 дня в гугле(( по этому решил создать тему, может JS профи смогут помочь затратив на это минимум времени, так как на следующие улучшения у меня думаю могут уйти месяца а то и вовсе никогда не произойти(( Выручите пожалуйста, буду очень Благодарен за любую помощь, только учитывайте пожалуйста нулевой уровень познания JS но и большое желание достичь результата)

search term highlighter умел при открытии ссылок с гугла в новой вкладке дальше продолжать подчёркивать то, что искалось в гугле. Enhanced word highlight вроде тоже должен это делать судя по описанию https://greasyfork.org/en/scripts/72...word-highlight
"Disable auto-highlight (auto-capture keywords for highlight) ?

⚪ Enable
⚪ Completely disable
⚪ Disable on pages opened from supported search results
⚪ Disable on supported search result pages"

Но почему-то этого не делает, пытаюсь поиском находить слова которые связаны с восстановлением, сохранением... и с фелс менять на тру, но безуспешно - при открытии, ссылки с гугла, в новой вкладке, скрипт не подсвечивает искомые слова(( Но если открыть ссылку в той же вкладке, то подсвечивает. По этому думаю, что всё же какая-то память в скрипте срабатывает, но почему не в новых вкладках?? И ещё в скрипте есть горячие клавиши, но они работают только на английской раскладке, возможно ли сделать чтобы срабатывало и при рус раскладке? Пробовал прописывать коды с http://www.character-code.com/ но это ничего не дало, может их как-то в скобки взять, или ещё каким либо образом оформить нужно??



Вот код оригинала скрипта https://greasyfork.org/en/scripts/72...highlight/code

И отредактированный http://pastebin.com/WtZHW1bw

Как было
Как стало

OmTatSat 29.01.2017 12:09

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

Может возможно добавить горячую клавишу на включение лока?
Или ещё лучше чтобы он автоматом срабатывал при открытии новой вкладки/нажатии СКМ?

OmTatSat 29.01.2017 12:15

Цитата:

и подчёркивания заместо выделения
// Было
'{background:'+rgb+'!important;}'
// Стало
'{border-bottom:2px solid '+rgb+'!important;}'
Не совсем так, если сделать так, то иногда крупный шрифт не будет подчёркиваться(
походу дело в высоте строки для текста, и бардюр просто в неё не влазился, с line-height: 1.3!important; бордер влазится, но выглядит кривовато, когда весь сайт чуть сдвигается....

пришёл к такому
border-bottom:1px solid '+rgb+';text-decoration: underline;font-weight: bold!important;


но border-bottom иногда очень далеко уходит от слова - не красиво(

И на данный момент остановился на

text-decoration-style: solid;text-decoration-color: '+rgb+'!important;text-decoration-line: underline;font-weight: 800!important;


Конечно было бы здорово чуть увеличить толщину подчёркивания, но пока ничего не нашлось.

OmTatSat 30.01.2017 02:41

Здорово!!!)) Вот что значит знать язык... Огромное спасибо, на конец то нормальное подчёркивание)!... Хоткеи работают, правда кнопка лока на гуи перестала работать, но это мелочь, хоткеи удобней будут.


Возникла идея как улучшить, но часа 2 перебирая варианты так ничего и не нашёл. Идея в том, чтобы если есть ввод новых слов, то лок снимается, прописываются новые слова и лок снова ставится.

Так вот, искал где взять слова которые только что ввёл, перепробовал много переменных, но которые давали слова было 2 или 3 но они давали эти слова в независимости вводил я их или просто стоит лок. Может вы снова покажите магию?)

мысль типа такого
if (keyword_store != введённые слова) {
command_lock();

Если это провернуть, получится полный автопилот!)

OmTatSat 30.01.2017 09:52

Цитата:

Сообщение от Rise
Значит что-то не так делаешь

да, так и есть, во первых просто добавил заместо заменить lock.addEventListener('click',command_lock,false)
и во вторых не убрал ниже идущее false.
Сейчас заработала кнопка гуи, Спасибо.

По поводу поиска введённых слов, подскажите пожалуйста, как можно выводить содержимое функций?

Вот так содержимое переменных выводится
alert('Первая строка\nВторая строка' + word_s)

Но если это функция, то пишет просто код функции, а если прописать return с функции - вообще не выводит ничего, как в данном примере.

OmTatSat 30.01.2017 10:24

Вот так вроде в гугле говорят должно отобразить, но чего-то ничего не появляется

init_words(word)
alert (init_words(word))

OmTatSat 30.01.2017 13:12

Спасибо за наводку, может есть где-то фак для новичков как ним пользоваться?
Активировал его как в вашей ссылке, потом открыл, нашёл вкладку debugger

в панели sources куча скриптов, но по поиску enhanced не находит этот скрипт

OmTatSat 30.01.2017 20:57

Пробелов нет, вот ввожу 2 буквы, а на третей уже нет совпадений((


OmTatSat 30.01.2017 21:12

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

OmTatSat 31.01.2017 01:33

Нашел место в скрипте, в котором если прописать keyword_store = ''; то, новые слова подхватываются и после подхвата срабатывает ваш код, и включается лок.

Нашёл код для поиска слов, но застопорился на моменте что в примере поиск вёлся в статической строке которая в кавычках, а у меня переменная, как в ней найти гугл?

var currentLocation = window.location;
//var str = "Stack Overflow";
var n = currentLocation.search("google");
if (n != -1) {
   alert('String exists')
   keyword_store = '';
}


Часовой пояс GMT +3, время: 23:01.