User-скрипт для автоматического подсчета символов в браузере

Однажды, я пошел сделать  чай. Проходя мимо нашего оптимизатора Натальи, заметил  у нее в мониторе, как она копирует тексты с десятков сайтов в Word, чтобы просто посмотреть, сколько в статье знаков и слов. Сжалившись над ней,  решил немного автоматизировать ее работу  по подсчету  количества символов в тексте. Я давно уже пользовался, так называемыми, юзер скриптами для своих задач. Юзер-скрипты (пользовательские скрпиты) это небольшие кусочки javascript  которые позволяют кастомизировать уже загруженную страницу сайта под себя прямо в браузере после или во время загрузки страницы: удалять лишние блоки, выделять нужные  элементы, считать и добавлять информацию к странице и т.д. В общем, позволяют делать со страницами все, что умеет javascript и чего не хватает на разрозненных сайтах.

Данный метод автоматизации был выбран потому что:

  • Прост в разработке (javascript  я пользуюсь каждый день для разработки сайтов)
  • Быстр в реализации (не нужно учить новых языков программирования и инструментов)
  • Сам им часто пользуюсь

У этого варианта существуют и минусы:

  • Работает только в браузере для которого установлен плагин менеджер юзер-скриптов
  • Чтобы установить данный скрипт придется повозиться (при первой установке менеджера скриптов. Добавлять сами скрипты не сложно. Но для каждого браузера, на работе, дома или на ноутбуке, процедуру установки менеджера придется повторить)
  • Сложно получать инфу с других (не открытых в данный момент) страниц сайта, для выполнения более сложных расчетов

Плагин менеджера скриптов, о котором идет речь, работает только в  Mozilla Firefox. (В хроме достойной альтернативы пока не нашел. В Opera есть реализация даже лучше, но ввиду редкости использования оперы и сжатых сроков, инструкцию не писал) Итак, установка состоит из 2 этапов: установка дополнения greasemonkey (читается грэсиманки) - менеджер скриптов для Firefox, которое подключает юзер-скрипт, и вставка и настройка самого пользовательского скрипта, который выполняет подсчет символов.

1 этап: Установка дополнения Greasemonkey.

Нажимаем иконку «Дополнения» в Firefox.

В открывшемся окне, слева нажимаем на «Получить дополнение». В строку поиска вставляем «greasemonkey» (без кавычек) и жмем Enter.

В результатах поиска нажать кнопку «Установить» в строке напротив дополнения Greasemonkey.

После установки нажимаем ссылку «Перезапустить сейчас».

После перезапуска у вас на панели инструментов firefox должна появиться иконка с мордой обезьяны (Greasemonkey дословно переводится как замасленная обезьяна или механик в литературном переводе) и рядом стрелочка вниз.

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

Этап 2: Установка скрипта

Скрипт, который и будет выполнять  полезные действия, в нашем случае, подсчитывать количество символов и слов в тексте. Для этого  нажимаем на стрелку вниз рядом с мордой обезьяны и выбираем «Создать скрипт …».

В открывшемся окне заполняем поля «Название» (по которому вы будете отличать этот скрипт от других) и «Пространство имен» (для группировки сходных по функционалу, задачам или тематики скриптов). Поле «Включения» оставляем пустым (это значит, что скрипт будет выполняться на всех сайтах и страницах).

Определившись с названием (например «Подсчет символов онлайн»), нажимаем «ОК» и копируем в буфер обмена скрипт ниже:

var wordMinLength = 4; // выводить слова с количеством букв больше чем это число
//Подключаем jQuery
var GM_JQ = document.createElement('script');
GM_JQ.src = 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js';
GM_JQ.type = 'text/javascript';
document.getElementsByTagName('head') [ 0].appendChild(GM_JQ);
function sortObjRevers(obj) {
 var vals = new Array();
 for (i in obj) {
 vals.push([i,
 obj[i]])
 }
 vals = vals.sort(function (a, b) {
 return a[1] - b[1]
 }).reverse();
 var retObj = new Object();
 for (i in vals) {
 retObj[vals[i][ 0]] = vals[i][1];
 }
 return retObj;
}
function getStatisticWords() {
 var lengthOutSpases = 0,
 lengthWithSpases = 0,
 wordsCount = 0,
 wordsNumbers = {
 },
 word = '';
 var selObj = document.getSelection();
 s = selObj.toString().trim();
 if (s.length > 0) {
 for (var i = 0; i < s.length; i++) {
 if (s[i] != ' ') {
 lengthOutSpases++;
 }
 lengthWithSpases++;
 }
 var words = s.split(/ |\r|\n|\t/gm); // '?'
 for (var i = 0; i < words.length; i++) {
 word = words[i];
 if (word != '' && word != '–') {
 wordsCount++;
 word = word.replace(/[.|,|(|)|:|;|!|?]/gm, '').toLocaleLowerCase();
 if (isNaN(wordsNumbers[word])) {
 wordsNumbers[word] = 1;
 } else {
 wordsNumbers[word] += 1;
 }
 }
 }
 var wordsNumbers = sortObjRevers(wordsNumbers);
 var numbersWords = '
x
' + wordsCount + ' слов ' + lengthOutSpases + ' без пробелов ' + lengthWithSpases + ' с пробелами

';  numbersWords += '' + wordMinLength + ' буквы минимум
';  for (var i in wordsNumbers) {  if (i.length >= wordMinLength) {  numbersWords += '';  }  }  numbersWords += '
' + i + '' + wordsNumbers[i] + '
';  if (jQuery('#numbersWords').length == 0) {  jQuery('body').append('
');  }  jQuery('#numbersWords').html(numbersWords);  } } if (window.Event) {  document.captureEvents(Event.MOUSEUP); } document.onmouseup = getStatisticWords;


вставляем этот скрипт в открывшееся окно, оставив все строки, которые уже были в окне.

Нажимаем «Сохранить». Скрипт готов к использованию. Закрываем окно редактирования юзер-скрипта. В браузере открываем любой сайт и выделяем интересующий текст на странице. Справа появится панелька со статистикой слов и символов (количество символов с пробелами и без пробелов, как в MS Word). Так же в этой панельке будет отображено и количество вхождения того или иного слова.

В статистику использования слов, по умолчанию, попадают слова от 4ых символов (за это отвечает переменная wordMinLength во вставляемом на втором этапе скрипте). Слова считаются без учета склонения, т.е. разные склонения и формы одного и того слова скриптом расцениваются/подсчитываются как разные. Слова сортируются по количеству вхождения по убыванию.

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

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

Так же можно отключить все скрипты сразу, нажав на морду обезьяны (и так же заново включить).

Важно: после отключения скрипта или плагина, необходимо перезагрузить те страницы, которые были открыты при включенном скрипте или плагине. На новых открытых страницах, скрипт уже работать не будет (обновление страницы не требуется). То же самое верно при включении скрипта.

Таким образом, написанный за 30 минут скрипт, значительно сокращает время на выполнение частых операций (по отзыву самой Натальи) и избавляет человека от рутинных действий. Автоматизация в действии.

Понравилось? Репост!

Читайте также