Раздел JavaScript

Скрипт Tampermonkey для повтора видео Youtube

Иногда хочется повторить проигрывание видео Youtube несколько раз. Однако, кнопки такой у него нет. Этот простой скрипт реализует такой функционал.

// ==UserScript==
// @name         Repeat on Youtube
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Repeat on Youtube
// @author       VVSite
// @match        https://www.youtube.com/*
// @icon         https://www.google.com/s2/favicons?domain=youtube.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    top.rep = false;

    let b_div = document.createElement('div');
    b_div.style.position = 'relative';
    let b_style = 'font-size: 30px; display: block; position: absolute; left: -55px; cursor: pointer; font-weight: bold; top: -8px; padding: 0 10px;border: 1px solid #cacaca; border-radius: 50%; padding-bottom: 5px;';
    let tmp = '<span id="vvs-rep" style="' + b_style + '">↻</span>';
    b_div.innerHTML = tmp;
    let sp = null;

    let video_player = document.querySelectorAll('#movie_player')[0];

    if (video_player)
    {
        let t_obr = setInterval( function(){

            let url = location.href;
            if (/watch\?v\=/.test(url))
            {
                let zag = document.querySelectorAll('.ytd-video-primary-info-renderer')[0];
                zag.before(b_div);


                sp = b_div.querySelector('#vvs-rep');
                if(sp)
                {
                    sp.onmouseover = function(e)
                    {
                        this.setAttribute('style', 'background: orange; ' + b_style);
                    }
                    sp.onmouseout = function(e)
                    {
                        this.setAttribute('style', 'background: #fff;' + b_style);
                    }
                    sp.onclick = function(e)
                    {
                        if (!top.rep)
                        {
                            b_style += 'color: red; background: #eaeaea;';
                            this.setAttribute('style', b_style);
                            top.rep = true;
                        }
                        else
                        {
                            b_style = b_style.substr(0, b_style.length - 32);
                            this.setAttribute('style', b_style);
                            top.rep = false;
                        }
                    }

                    if (video_player.getCurrentTime() == video_player.getDuration() && top.rep)
                    {
                        video_player.playVideo();
                    }
                }

            }

        }, 1500);
    }
    else
    {
        //clearInterval(t_obr);
    }
})();

Протестировано в Firefox 96.0.2. Для использования скрипта:

1. Установите плагин Tampermonkey для Firefox.

2. Скопируйте содержимое кода скрипта вверху.

3. Щелкните на кнопке плагина, чтобы вызвать меню и выберите «Создать новый скрипт».

4. Удалите весь текст, который Tampermonkey автоматически добавляет в новый скрипт и вставьте из буфера скопированный в п.2 код.

5. Сохраните скрипт по «Файл — Сохранить».

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

7. Повторное нажатие прекратит автоматическое воспроизведение.

Дата в текстовом поле

Update: скрипт обновлен 30.05.2017

Простая проверка текстового поля на валидность даты с помощью чистого JavaScript. Основные фишки:

  • Формат даты — русский
  • Вводить можно только цифры
  • Проверена работа под Firefox 53, Chrome 60

Код выложил на JS Fiddle — https://jsfiddle.net/VVSite/e2nwtv0o/

Скрин

3DNews block script

Дополнение к блокировке рекламы на 3DNews.ru. Этот скрипт использует Firefox-дополнение Greasemonkey. Как установить скрипт:

  • выделите текст в блоке и скопируйте в буфер
  • создайте новый скрипт в Greasemonkey и вставьте текст из буфера
  • сохраните скрипт и проверьте работу на 3DNews — верхний отступ в 100px и рекламное изображение в бэкграунде страницы должны исчезнуть
// ==UserScript==
// @author      VVSite
// @name        3DNews
// @namespace   3dnews.ru
// @description 3DNews block
// @version     1
// @grant       none
// @include https://3dnews.ru/*
// ==/UserScript==
var el = document.getElementById('global-wrapper');
setTimeout(function (){
  el.style.paddingTop = '0px';
  el.style.backgroundImage = 'none';
}, 1000 );

 

JavaScript: переход по полям формы по клавише Enter

Скачайте файл pe.zip и распакуйте в папку сайта.

Вствьте в заголовок страницы код:

<script src="pe.js" type="text/javascript"></script>

 

Вызов функции делайте так:

<script>
po_enter(form_name);
</script>

Вместо form_name — впишите имя используемой формы.

Сумма прописью на JavaScript (UA & RU)

Сумма прописью на украинском и русском языках. Пример использования в архиве: sp.zip . Распакуйте архив и откройте файл sumP.htm

Скриншот: