28.01.2017, 22:33
|
Интересующийся
|
|
Регистрация: 28.01.2017
Сообщений: 14
|
|
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, 28.01.2017 в 22:42.
|
|
29.01.2017, 11:49
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Сообщение от OmTatSat
|
если открыть ссылку в той же вкладке, то подсвечивает
|
"Inherit-highlight: highlighted keywords will also be automatically highlighted in subsequent pages in the same tab/window;"
Сообщение от OmTatSat
|
при открытии, ссылки с гугла, в новой вкладке, скрипт не подсвечивает искомые слова
|
"A "Lock" button to store one set of keywords and highlight them on whatever pages;"
Это включается кнопкой "L" на панели, читай "To lock keywords for highlight:...", "To unlock keywords for highlight:...".
Сообщение от OmTatSat
|
вроде тоже должен это делать судя по описанию "Disable auto-highlight...
|
"This config does not affect inherit-highlight and highlight for locked keywords."
Эта настройка о чем-то другом - 1 и 2 опции еще понятно, а 3 и 4 я так и не понял.
Сообщение от OmTatSat
|
горячие клавиши, но они работают только на английской раскладке
|
Обязательно в такой последовательности (Ctrl и/или Alt могут отсутствовать): 'C-' - это Ctrl, 'M-' - Alt, 'key' - некая клавиша, для алфавитно-цифровых клавиш будет присутствовать зависимость от раскладки, поэтому лучше использовать остальные:
var keyCodeStr = {
8: 'BAC',
9: 'TAB',
10: 'RET',
13: 'RET',
27: 'ESC',
33: 'PageUp',
34: 'PageDown',
35: 'End',
36: 'Home',
37: 'Left',
38: 'Up',
39: 'Right',
40: 'Down',
45: 'Insert',
46: 'Delete',
112: 'F1',
113: 'F2',
114: 'F3',
115: 'F4',
116: 'F5',
117: 'F6',
118: 'F7',
119: 'F8',
120: 'F9',
121: 'F10',
122: 'F11',
123: 'F12'
};
Например, с клавишами стрелок:
// keybinds
var KEY_NEXT = 'M-Down'; // "Alt-Down" Next occurrence
var KEY_PREV = 'M-Up'; // "Alt-Up" Previous occurrence
var KEY_SEARCH = 'M-Left'; // "Alt-Left" Add keywords
var KEY_OFF = 'C-M-Left'; // "Ctrl-Alt-Left" Suspend highlight
var KEY_CLOSE = 'C-M-Right'; // "Ctrl-Alt-Right" Disable highlight
var KEY_EDIT = 'M-Right'; // "Alt-Right" Edit highlight
var KEY_REFRESH = 'C-M-Down'; // "Ctrl-Alt-Down" Refresh highlight
Сообщение от OmTatSat
|
ушло 2 дня в гугле((
|
Может кому пригодятся твои страдания))
Сообщение от OmTatSat
|
добавление поддержки кириллицы
|
// Было
"abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
// Стало
"abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
"ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
Сообщение от OmTatSat
|
и подчёркивания заместо выделения
|
// Было
'{background:'+rgb+'!important;}'
// Стало
'{border-bottom:2px solid '+rgb+'!important;}'
|
|
29.01.2017, 12:09
|
Интересующийся
|
|
Регистрация: 28.01.2017
Сообщений: 14
|
|
Про остальные клавиши - хорошая идея, и со стрелками более интуитивно понятно по крайней мере следующее предыдущее слово)
Может возможно добавить горячую клавишу на включение лока?
Или ещё лучше чтобы он автоматом срабатывал при открытии новой вкладки/нажатии СКМ?
|
|
29.01.2017, 12:15
|
Интересующийся
|
|
Регистрация: 28.01.2017
Сообщений: 14
|
|
Цитата:
|
и подчёркивания заместо выделения
// Было
'{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;
Конечно было бы здорово чуть увеличить толщину подчёркивания, но пока ничего не нашлось.
|
|
30.01.2017, 02:41
|
Интересующийся
|
|
Регистрация: 28.01.2017
Сообщений: 14
|
|
Здорово!!!)) Вот что значит знать язык... Огромное спасибо, на конец то нормальное подчёркивание)!... Хоткеи работают, правда кнопка лока на гуи перестала работать, но это мелочь, хоткеи удобней будут.
Возникла идея как улучшить, но часа 2 перебирая варианты так ничего и не нашёл. Идея в том, чтобы если есть ввод новых слов, то лок снимается, прописываются новые слова и лок снова ставится.
Так вот, искал где взять слова которые только что ввёл, перепробовал много переменных, но которые давали слова было 2 или 3 но они давали эти слова в независимости вводил я их или просто стоит лок. Может вы снова покажите магию?)
мысль типа такого
if (keyword_store != введённые слова) {
command_lock();
Если это провернуть, получится полный автопилот!)
|
|
30.01.2017, 06:23
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Сообщение от OmTatSat
|
правда кнопка лока на гуи перестала работать
|
Значит что-то не так делаешь
// Было
function setup(init) {
// ...
lock.addEventListener('click',function(){
// ...
},false);
// ...
}
// Стало
function setup(init) {
// ...
lock.addEventListener('click',command_lock,false);
// ...
}
Сообщение от OmTatSat
|
Может вы снова покажите магию?)
|
Неа
|
|
30.01.2017, 09:52
|
Интересующийся
|
|
Регистрация: 28.01.2017
Сообщений: 14
|
|
Сообщение от Rise
|
Значит что-то не так делаешь
|
да, так и есть, во первых просто добавил заместо заменить lock.addEventListener('click',command_lock,false)
и во вторых не убрал ниже идущее false.
Сейчас заработала кнопка гуи, Спасибо.
По поводу поиска введённых слов, подскажите пожалуйста, как можно выводить содержимое функций?
Вот так содержимое переменных выводится
alert('Первая строка\nВторая строка' + word_s)
Но если это функция, то пишет просто код функции, а если прописать return с функции - вообще не выводит ничего, как в данном примере.
|
|
30.01.2017, 10:24
|
Интересующийся
|
|
Регистрация: 28.01.2017
Сообщений: 14
|
|
Вот так вроде в гугле говорят должно отобразить, но чего-то ничего не появляется
init_words(word)
alert (init_words(word))
|
|
30.01.2017, 12:28
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
OmTatSat, надо смотреть на точках останова в отладчике панели инструментов браузера - Browser Toolbox.
|
|
|
|