您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
2024/5/15 14:39:50
- // ==UserScript==
- // @name Region loop
- // @namespace Violentmonkey Scripts
- // @match https://www.bilibili.com/video/*
- // @grant unsafeWindow
- // @version 1.0.1
- // @author 5ec1cff
- // @run-at document-body
- // @description 2024/5/15 14:39:50
- // @license MIT
- // ==/UserScript==
- ((window) => {
- let document = window.document;
- let enableCheck;
- let leftBtn;
- let leftResetBtn;
- let rightBtn;
- let rightResetBtn;
- let left = null, right = null, enabled = false;
- function install(dom, video) {
- let root = dom.querySelector('#my_play_control');
- if (root == null) root = document.createElement('div');
- root.id = 'my_play_control';
- dom.appendChild(root);
- root.innerHTML = `
- <input type="checkbox" id="enable_loop">
- <label for="enable_loop">开启循环</label>
- <input type="button" value="[x" id="reset_left" />
- <input type="button" value="[" id="set_left" />
- <input type="button" value="]" id="set_right" />
- <input type="button" value="x]" id="reset_right" />
- `;
- enableCheck = root.querySelector('#enable_loop');
- leftBtn = root.querySelector('#set_left');
- leftResetBtn = root.querySelector('#reset_left');
- rightBtn = root.querySelector('#set_right');
- rightResetBtn = root.querySelector('#reset_right');
- enableCheck.addEventListener('change', () => {
- enabled = enableCheck.checked;
- })
- leftBtn.addEventListener('click', () => {
- let newLeft = video.currentTime;
- if (newLeft >= (right ?? Infinity)) return;
- left = newLeft;
- leftBtn.value='['+left;
- })
- rightBtn.addEventListener('click', () => {
- let newRight = video.currentTime;
- if (newRight <= (left ?? 0)) return;
- right = newRight;
- rightBtn.value=right+']';
- })
- leftResetBtn.addEventListener('click', () => {
- left = null;
- leftBtn.value='[';
- })
- rightResetBtn.addEventListener('click', () => {
- right = null;
- rightBtn.value=']';
- })
- video.addEventListener('timeupdate', () => {
- if (!enabled) return;
- let current = video.currentTime;
- if (current >= (right ?? Infinity) || current < left) video.currentTime = left ?? 0;
- })
- video.addEventListener('ended', () => {
- if (!enabled) return;
- video.currentTime = left ?? 0;
- video.play();
- })
- }
- let intv = 0;
- intv = setInterval(() => {
- let root = document.querySelector('#viewbox_report'), video = document.querySelector('video');
- if (root == null || video == null) return;
- install(root, video);
- console.log('install success on', root, video)
- clearInterval(intv);
- }, 1000)
- })(unsafeWindow)
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址