【记录】优化油猴插件【BD网盘播放器】
收获最重要
- 前言
- 优化
- 代码
- 收获
- 1.禁止浏览器弹窗
- 2.定时器
- 3.设置属性-隐藏元素
- 4.鼠标悬停和移开事件
- 5.添加元素
- 6.div里均匀分布
- 7.获取元素属性值
- 8.监听播放器状态
- 9.jQuery 选择器
前言
有钱的可以支持一下原作者,没钱就要多学习
优化
1.1 视频刚开始未播放时,可能会有弹窗,不需要管,开始播放的时候自动关闭;
1.2 视频播放时,自动关闭弹窗,并继续播放视频
1.3 视频暂停时,每10s检测一次弹窗,自动关闭弹窗
2.1 添加快捷速度调整按钮
2.2 添加2.5和3倍速
3.1 去掉下方广告
代码
将代码复制到原脚本的开头
‘use strict’;
后面
window.alert=function(){}var timerMenu = 0;var timerSpeed = setInterval(() => {//dplayer-setting设置按钮,本来准备拦截点击动作,然后直接显示速度选择,后来发现可以appendvar Qsettings=document.getElementsByClassName("dplayer-setting");var QsettingBoxs=document.getElementsByClassName("dplayer-setting-box");console.log("Qsettings",Qsettings);for (var Qsetting of Qsettings ){Qsetting.setAttribute("id", "Qsetting");document.getElementById('Qsetting').addEventListener('mouseenter',function() {//增加触摸事件mouseover-包括子元素,会导致无法点击子元素QsettingBoxs[0].setAttribute("class","dplayer-setting-box dplayer-setting-box-open")});document.getElementById('Qsetting').addEventListener('mouseleave',function() {//增加触摸事件mouseout-包括子元素,会导致无法点击子元素QsettingBoxs[0].setAttribute("class","dplayer-setting-box")});clearInterval(timerSpeed);//进入循环,说明加载成功//关闭广告var ad = document.getElementById('web-single-bottom');console.log(ad);if(ad){//ad.setAttribute("display", "none");//不可以//Element.style.display = 'none';ad.setAttribute('style','display:none');}var html ='<div class="dplayer-setting-speed-item" style="display: flex;align-items: center;"><span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=0.5>0.5</span><span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=1>1</span><span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=2>2</span></div>'$(".dplayer-setting-origin-panel").append(html);$(".dplayer-setting-speed-panel").append('<div class="dplayer-setting-speed-item" var=2.5><span class="dplayer-label">2.5</span></div>');$(".dplayer-setting-speed-panel").append('<div class="dplayer-setting-speed-item" var=3><span class="dplayer-label">3</span></div>');$(".dplayer-setting-speed-item").on("click",function(){var sp =1;var videos=document.querySelectorAll("video");sp=$(this).attr("var");console.log(sp)//Math.floor(sp)//console.log(sp)//Object.prototype.toString.call(sp)//undefinedvideos[0].playbackRate=sp;//有报错但是能起作用: property on 'HTMLMediaElement': The provided double value is non-finite.});}}, 1000*3);//10s检测一次//addEventListener总报错,可能是页面还没加载// document.getElementById('speed25').addEventListener('click',function() {// var videos=document.querySelectorAll("video");// console.log(videos)// for (var video of videos ){// video.playbackRate=2.5;// }// });var timerVideo = setInterval(() => {var videos=document.querySelectorAll("video");console.log("videos",videos)for (var video of videos ){clearInterval(timerVideo);//进入循环,说明加载成功//video.play();//play() failed because the user didn't interact with the document first.//特性,不让无操作交互时,自动播放发出声音,可以静音播放,但是静音对用户也不太友好,需要。。可以再开开?太麻烦,自己点吧//最好在视频开始时点击播放一下,可以再暂停,这样可以自动关弹窗,刚进入页面不播放,不会检测弹窗video.addEventListener('play', function () { //播放开始执行的函数console.log("开始播放");var menus=document.getElementsByClassName("dplayer-menu dplayer-menu-show");if(menus.length){//检测弹窗console.log("menus",menus)for (var menu of menus ){ menu.setAttribute("class", "dplayer-menu");}console.log("自动关闭");}});video.setAttribute("id","video");$('#video').bind('contextmenu',function() { return false; });//拦截右键菜单video.addEventListener('playing', function () { //播放中console.log("播放中");if(timerMenu){clearInterval(timerMenu);}});video.addEventListener('contextmenu', function () { //检测到弹窗 就关闭 // 只能检测手动右键console.log("拦截右键");});//能检测到暂停,不能检测到弹窗dplayer-menu dplayer-menu-showvideo.addEventListener('pause', function () { //检测暂停console.log("暂停播放,检测弹窗");//启动计时器,暂停时间短说明是弹窗// var timer = setInterval(() => {var menus=document.getElementsByClassName("dplayer-menu dplayer-menu-show");if(menus.length){//检测弹窗console.log("menus",menus)video.play();for (var menu of menus ){ menu.setAttribute("class", "dplayer-menu");}//menu.setAttribute("display", "none");//可以设置属性,但是不隐藏//menu.attr("hidden", true);//可以设置属性,但是不隐藏console.log("自动关闭");}// }, 1000*10);//10s检测一次timerMenu = setInterval(() => {var menus=document.getElementsByClassName("dplayer-menu dplayer-menu-show");if(menus.length){//检测弹窗console.log("menus",menus)//video.play();for (var menu of menus ){ menu.setAttribute("class", "dplayer-menu");}//menu.setAttribute("display", "none");//可以设置属性,但是不隐藏//menu.attr("hidden", true);//可以设置属性,但是不隐藏console.log("自动关闭");}}, 1000*10);//10s检测一次});}}, 1000*3);//10s检测一次
收获
1.禁止浏览器弹窗
window.alert=function(){}
2.定时器
var timer = setInterval(() => {}, 1000*10);//10s检测一次clearInterval(timer);//清除定时器,timer为整数
3.设置属性-隐藏元素
//ad.setAttribute("display", "none");//不可以//Element.style.display = 'none';ad.setAttribute('style','display:none');
4.鼠标悬停和移开事件
document.getElementById('Qsetting').addEventListener('mouseenter',function() {//增加触摸事件mouseover-包括子元素,会导致无法点击子元素QsettingBoxs[0].setAttribute("class","dplayer-setting-box dplayer-setting-box-open")});document.getElementById('Qsetting').addEventListener('mouseleave',function() {//增加触摸事件mouseout-包括子元素,会导致无法点击子元素QsettingBoxs[0].setAttribute("class","dplayer-setting-box")});
5.添加元素
$(".dplayer-setting-origin-panel").append(html);$(".dplayer-setting-speed-panel").append('<div class="dplayer-setting-speed-item" var=2.5><span class="dplayer-label">2.5</span></div>');$(".dplayer-setting-speed-panel").append('<div class="dplayer-setting-speed-item" var=3><span class="dplayer-label">3</span></div>');
6.div里均匀分布
<div class="dplayer-setting-speed-item" style="display: flex;align-items: center;"><span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=0.5>0.5</span><span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=1>1</span><span class="dplayer-setting-speed-item" style="flex: 1;text-align: center;padding: 10px;" var=2>2</span></div>
7.获取元素属性值
$(".className").on("click",function(){sp=$(this).attr("属性名");console.log(sp)});
8.监听播放器状态
https://www.cnblogs.com/yuanmo/p/12795104.html
video.addEventListener('playing', function () { //播放中console.log("播放中");});video.addEventListener('pause', function () { //暂停中console.log("暂停中");});video.addEventListener('contextmenu', function () { //检测到弹窗 就关闭 // 只能检测手动右键console.log("右键点击");});
9.jQuery 选择器
https://www.runoob.com/jquery/jquery-ref-selectors.html
【记录】优化油猴插件【BD网盘播放器】相关推荐
- android 百度网盘 播放器,最好用的安卓播放器,支持云盘播放,看电影必备
原标题:最好用的安卓播放器,支持云盘播放,看电影必备 你最喜欢用什么播放器来看电影? 或许腾讯视频.优酷等主流的点播播放器是数千万人的选择,但有时,我们也需要一款好用.离线.轻量级别的本地播放器来播放 ...
- 油猴插件+IDM下载器完美解决网盘下载速度慢的问题
郑重声明:此篇文章只作为个人学习研究中解决百度网盘下载速度慢的解决方法,不做为任何商业用途,所有工具和实验工具都合法来自于公开互联网,本人支持正版,拒绝盗版.请读者严格遵守相关规定,本人不对他人通过本 ...
- IDM百度网盘不限速下载,油猴插件完美解决下载
百度网盘相信大家都不陌生,可以说百度网盘是当今最流行的网盘之一!我们很多在网上找到的资料大部分都是利用百度网盘分享链接+提取码的方式进行分享的!然后根据我们当时的所需,进行资源的下载以完成信息传输的这 ...
- 一种提高百度网盘下载速度方法:Aria2+ 油猴插件 实现大文件的高速下载
0.背景描述:经常困扰于网盘的下载速度,寻找提高下载速度的方法,成功实践后将自己方法分享给大家使用edge浏览器安装油猴插件,添加新脚本:百度网盘简易下载助手 安装插件如下图: 选择一个测试的网盘:h ...
- chrome+油猴插件+IDM实现百度网盘大文件的高速下载
郑重声明:此篇文章只作为个人学习研究中解决百度网盘下载速度慢的解决方法,不做为任何商业用途,所有工具和实验工具都合法来自于公开互联网,本人支持正版,拒绝盗版.请读者严格遵守相关规定,本人不对他人通过本 ...
- chrome + IDM + 油猴插件 实现百度网盘大文件的高速下载
chrome + IDM + 油猴插件 实现百度网盘大文件的高速下载:这是一项非常成熟的技术,下载速度快, 不用担心被封 1. 下载chrome 这个直接跳过 没有的话 就不用看了 2. 下载idm软 ...
- tampermonkey油猴插件|tampermonkey油猴脚本
让你的电脑浏览器使用起来更加强大吗?那么可以试试tampermonkey油猴插件,这是专门为市面上主流常见的chrome谷歌浏览器.firefox火狐.360浏览器.Microsoft Edge.Op ...
- 百度云直链下载-IDM+油猴插件(一)
百度云直链下载[满速]-IDM 浏览器插件安装 安装浏览器插件Tampermonkey 直链脚本安装 IDM下载方法 IDM下载&安装 IDMIDM配置 直链获取&下载 选定文件 获取 ...
- 油猴插件(隐藏知乎标题,屏蔽百度搜索广告)
1.隐藏知乎标题 先下载安装一个浏览器插件"油猴插件"(Tampermonkey): https://www.aliyundrive.com/s/4rTXeq7R8bx 提取码: ...
最新文章
- 工作小记(三)----说说北京生活的乐趣
- 智能车竞赛技术报告 | 智能车视觉 - 中国矿业大学 - 会飞的车
- 青少年计算机学奥林匹克大赛,2019年第36届全国青少年信息学奥林匹克竞赛获奖规则...
- mysql 选择字符集 拉丁字符集_mysql的字符集
- php 替换字符串 图片,PHP替换字符串实现图片自适应屏幕实例代码
- html基本标签与属性
- java运行时异常中文_JAVA——运行时异常(RuntimeException)
- 微信地图 leaflet 腾讯地图
- 【Django】Django使用jsonrpc
- 网站在线协作工具 onlyoffice在线协作
- 使用Navicat连接Mycat的诡异事件
- java中八种基本类型及默认值(2015年9月22日)
- 第2章_7 判断某整数是正整数、负整数还是零 (10 分)
- 阿里云调用api配置access_key
- 【Python】使用日历热图进行时序数据可视化
- [转载]jQuery诞生记-原理与机制
- 会声会影老牌视频剪辑软件2023新版本升级
- window cmd 创建文本文件
- GPS时钟源(GPS时间同步服务器)的概述
- 五子棋java百度文库_JAVA课程设计 五子棋(内附完整代码).doc
热门文章
- 盐雾实验有什么作用?
- 简单使用Kali WiFi破解实例
- 如何运维机械电气设备?购物中心必备
- python混合运算_计算加减乘除混合运算python实现_加减乘除运算题(Python实现)...
- js删除字符串最后一个字符方法总汇
- 【C++】智能指针用法详解(非常实用)
- 硬件电路开发中数码管常用知识
- 【转】android软键盘显示与主窗口调整方式设置,Android软键盘显示模式及打开和关闭方式(推荐)...
- 栈溢出 栈内存溢出_全栈溢出开发人员
- if(GPIO_Pin == GPIO_PIN_0) 是什么意思