当前位置: 首页 > news >正文

bilibili倍数脚本,油猴脚本

一. 内容简介

bilibili倍数脚本,油猴脚本

二. 软件环境

2.1 Tampermonkey

三.主要流程

3.1 创建javascript脚本

点击添加新脚本
在这里插入图片描述
就是在

(function() {'use strict';// 在这编写自己的脚本
})();

在这里插入图片描述

倍数脚本,含解析

// ==UserScript==
// @name         bilibili倍数
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  添加b站自定义倍数功能
// @author       You
// @match        https://www.bilibili.com/video/*
// @icon         https://img-blog.csdnimg.cn/f5d99485009b4e3b8a1de33064202353.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224
// @grant        none
// @license MIT
// ==/UserScript==
// 解析来自 http://t.csdn.cn/rkANJ,http://t.csdn.cn/nlUTQ
// "==UserScript=="           Greasemonkey 用它们来标记用户脚本的元数据段。这段注释可以放在用户脚本的任何部位,但经常会放在靠近顶部的地方
// @name                      脚本名字(可选,如果不存在,将会默认显示用户脚本的去掉拓展名.user.js的文件名)
// @namespace                 这个是命名空间;用来区分名称相同但是作者不同的用户脚本,一般都是写作者的个人网址,没有也可以写你的博客地址
// @version                   填写版本
// @description               关于用户脚本功能(可选,不写默认空白)
// @author                    作者
// @match                     这个是该脚本匹配的网址,支持通配符匹配
// @include		              这个也是该脚本匹配的网址,支持通配符匹配
// @exclude		              这个和 iclude 配合使用,排除匹配到的网址,优先于 include
//                            @include和 @exclude 是可选的,可以自定义执行和豁免的 URL,但必须每条规则各占一行。如果您没有任何定义, Greasemonkey 将会对所有的网站执行您的用户脚本。(等同于 @include *)。
// @icon                      应该是图标
// @grant                     none
// @license MIT
// 代码来自https://greasyfork.org/zh-CN/scripts/442030-%E8%87%AA%E5%AE%9A%E4%B9%89%E5%80%8D%E6%95%B0,
// 在此基础上进行删改
(function() {'use strict';function addOtherSpeed() {// 这是拿到倍数那个容器let speedList = document.getElementsByClassName('bpx-player-ctrl-playbackrate-menu')[0];// 看是否执行过了if (speedList.getAttribute('set') === 'true') {return ;}// 给这个容器设置一个属性speedList.setAttribute('set','true');let createSpeedLi = (speed,parentDom) => {// 里面每个速度那个栏都是li存放的let li25 = document.createElement('li');// 给创建的栏添加进倍数那个栏// 从头部加入// parentDom.appendChild(li25);// 从尾部加入parentDom.insertBefore(li25, parentDom.firstChild);// 样式是原来哔哩哔哩里面的样式li25.classList.add('bpx-player-ctrl-playbackrate-menu-item');// 原来的li中有个属性就是 data-value,用来设置倍数的li25.setAttribute('data-value',speed);// 添加一下控件的内容speed = speed.toFixed(1);li25.innerHTML = `${speed}x`;li25.onclick = function () {let speed_ = li25.getAttribute('data-value');// getElementsByTagName 是 JavaScript 中 Document 对象的一个方法,用于获取文档中具有指定标签名称的所有元素let v = document.getElementsByTagName('video');if (v.length) {v = v[0];} else {// 设置倍数v = document.getElementsByTagName('bwp-video')[0];}v.playbackRate = parseFloat(speed_);}return li25;};createSpeedLi(2.5,speedList);createSpeedLi(3.0,speedList);createSpeedLi(3.5,speedList);new Array(...speedList.getElementsByTagName('li')).map(_=> {// 这块不清楚了,添加一个空事件,在点击自己添加的倍数时候,播放下一个视频时候也会按着这个倍数播放的,删除的话,倍数无法保存_.onclick = function() {}});return ``}function fullScreenAndDoubleTime() {addOtherSpeed();tryAndTryFns.pop();}// 不停的尝试let tryAndTryFns = [];function tryAndTry() {setInterval(() => {// tryAndTryFns.forEach(f => f());: 在每个定时间隔,tryAndTry函数会遍历数组 tryAndTryFns 中的所有函数,并且调用这些函数tryAndTryFns.forEach(f => f());},500);}// 从这开始setTimeout(() => {tryAndTryFns.push(fullScreenAndDoubleTime);// 开始执行tryAndTry();},2000);// Your code here...
})();

假如要添加自己想要的倍数,在在这个地方添加就好了

        createSpeedLi(2.5,speedList);createSpeedLi(3.0,speedList);createSpeedLi(3.5,speedList);

3.2 测试运行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试完成

http://www.lryc.cn/news/123082.html

相关文章:

  • 8.14 作业
  • Debian安装和使用Elasticsearch 8.9
  • 三 、CTR预估数据准备
  • netty学习分享 二
  • 聊聊web服务器NGINX
  • 【hello C++】特殊类设计
  • js实现按创建时间戳1609459200000 开始往后开始显示运行时长-demo
  • latex三线表按页面大小填充
  • 佛祖保佑,永不宕机,永无bug
  • redis分布式集群-redis+keepalived+ haproxy
  • 快递管理系统springboot 寄件物流仓库java jsp源代码mysql
  • 自学黑客/网络安全(学习路线+教程视频+工具包+经验分享)
  • 如何进行游戏平台搭建?
  • 安全防御问题
  • x-www-form-urlencoded、application/json到底是什么
  • LeetCode 33题:搜索旋转排序数组
  • 用python来爬取某鱼的商品信息(1/2)
  • 网工最常犯的9大错误,越早知道越吃香
  • Windows - UWP - 网络不好的情况下安装(微软商店)MicrosoftStore的应用
  • 1040:输出绝对值
  • [Docker精进篇] Docker部署和实践 (二)
  • day9 | 28. 实现 strStr()、459.重复的子字符串
  • hive on tez资源控制
  • 企业有VR全景拍摄的需求吗?能带来哪些好处?
  • 【问题解决】Git命令行常见error及其解决方法
  • 【100天精通python】Day34:使用python操作数据库_ORM(SQLAlchemy)使用
  • CCLINK IE转MODBUS-TCP网关modbus tcp协议详解
  • vue2根据不同的电脑分辨率显示页面内容及不同设备适配显示
  • 概率论:多维随机变量及分布
  • flutter-第三方组件