Youtube播放器用户体验优化

优化拖动进度条后无法通过键盘调整音量

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Youtube播放器用户体验优化
// @namespace    https://www.youtube.com/
// @version      1.3
// @description  优化拖动进度条后无法通过键盘调整音量
// @author       Maverick_Pi
// @match        https://www.youtube.com/*
// @icon         https://www.youtube.com/favicon.ico
// @grant        none
// @run-at       document-idle
// @license      MIT
// ==/UserScript==
(function () {
  'use strict'

  function enhancePlayerFocus () {
    const progressBar = document.querySelector('.ytp-progress-bar')
    const video = document.querySelector('video')
    if (!progressBar || !video) return

    const outOfFocus = e => {
      document.activeElement.blur()
      video.focus()
    }

    // Prevent adding duplicate listeners
    progressBar.removeEventListener('focus', outOfFocus)
    progressBar.addEventListener('focus', outOfFocus)
  }

  // First execution
  setInterval(enhancePlayerFocus, 2000)
})()