// ==UserScript== // @name 小红书倍速增强 // @namespace http://tampermonkey.net/ // @version 0.0.2 // @description 为小红书网页端播放器增加更多倍速选项,滚动调整菜单高度 // @author zzx114 // @match *://www.xiaohongshu.com/* // @grant none // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/524835/%E5%B0%8F%E7%BA%A2%E4%B9%A6%E5%80%8D%E9%80%9F%E5%A2%9E%E5%BC%BA.user.js // @updateURL https://update.greasyfork.icu/scripts/524835/%E5%B0%8F%E7%BA%A2%E4%B9%A6%E5%80%8D%E9%80%9F%E5%A2%9E%E5%BC%BA.meta.js // ==/UserScript== (function() { 'use strict'; // 等待播放器加载完成 const waitForPlayer = setInterval(() => { const playbackRateList = document.querySelector('xg-playbackrate ul'); if (playbackRateList) { clearInterval(waitForPlayer); const playbackRateList = document.querySelector('xg-playbackrate ul'); playbackRateList.style.height = 'auto'; // 或设置具体像素值 playbackRateList.style.overflowY = 'auto'; // 超出部分显示滚动条 // 添加新的倍速选项 const newSpeeds = [ { cname: '3', text: '3x' }, { cname: '4', text: '4x' }, ]; // 将新选项插入到列表的最前面 newSpeeds.forEach(speed => { const li = document.createElement('li'); li.setAttribute('cname', speed.cname); li.className = ''; li.textContent = speed.text; playbackRateList.insertBefore(li, playbackRateList.firstChild); }); // 更新点击事件处理 playbackRateList.querySelectorAll('li').forEach(li => { li.addEventListener('click', function() { // 移除所有li的selected类 playbackRateList.querySelectorAll('li').forEach(item => { item.classList.remove('selected'); }); // 为当前点击的li添加selected类 this.classList.add('selected'); const speed = parseFloat(this.getAttribute('cname')); const video = document.querySelector('video'); if (video) { video.playbackRate = speed; } }); }); } }, 500); })();