记录优化油猴插件bd网盘播放器(代码片段)

跪求指点 跪求指点     2023-04-12     783

关键词:

收获最重要

前言

有钱的可以支持一下原作者,没钱就要多学习

优化

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设置按钮,本来准备拦截点击动作,然后直接显示速度选择,后来发现可以append
        var 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)//undefined
                videos[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-show
            video.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

那些离不开的chrome扩展插件(代码片段)

...内存啊!速度还快!用法也很简单--20151202更新用法简要记录下:GreasyFork国内油猴脚本的下载地,常用的百度网盘助手,去除贴吧列表里面的广告,CSDN去广告自动展开文章等脚本都有当找到脚本之后,点击安装即可,然后在相关... 查看详情

油猴(tampermonkey)插件+脚本+idm=百度网盘高速下载

...。这个在下载一些大型文件的时候尤其突出。解决:  油猴(Tampermonkey)插件+脚本+IDM 实现多线程高速下载。  我测试的是64位windows7系统,浏览器是Chrome。  1.下载、安装Chrome浏览器。  建议在安装时,安装在默认位... 查看详情

油猴插件使用(代码片段)

油猴插件使用一,下载安装二,脚本功能2.1找到界面2.2访问Greasyfork2.3找到插件2.4安装插件2.5使用脚本三,体验小结一,下载安装若没有安装过Tampermonkey,会弹窗让你安装点击Tampermonkey安装,Tampermonkey官网&#... 查看详情

chrome开发并使用油猴tampermonkey插件(代码片段)

背景:以前test.user.js的插件方式被Chrome封杀了。现在只能依赖油猴来编写自己的js插件。  官方网站:https://tampermonkey.net/chrome商店: https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl= 查看详情

swift领域:bd记录更新(代码片段)

查看详情

★简单明确( ̄︶ ̄)↗——百度网盘秒传链接教程(使用火狐浏览器)(代码片段)

目录前言一、下载火狐浏览器二、安装油猴插件Tampermonkey三、安装插件秒传提取GreasyFork四、复制秒传链接到网页版百度网盘五、如何生成秒传链接*六、在MicrosoftEdge上安装浏览器拓展结语前言之前看到很多介绍百度网盘秒传链接... 查看详情

制作一个简单的百度网盘在线视频加速的chrome插件(代码片段)

...ers("video-player").html5player.tech_.setPlaybackRate(1.5);使用插件将上面js代码注入到页面中就可以实现上面的效果。源码:https://github.com/maoyonglong/bdyspeed参考:控 查看详情

简单的油猴脚本入门教程(代码片段)

简单的油猴脚本入门教程当然,最好有一些js基础对于浏览器的使用,基本上操作都是一样的,既然是前端功能,这里推荐火狐浏览器1.下载油猴脚本百度上有很多教程,这里就不详细说明了https://tampermonkey.net/入油猴脚本官网,会自动为... 查看详情

我用的是油猴脚本,已经安装成功了,为啥点击直接下载不能下载,会显示这个界面?

...太旧,尝试更新脚本插件到最新版本参考技术A我用的是油猴脚本,已经安装成功了,为什么点击直接下载不能下载,会显示这个界面?浏览器不仅能让我们浏览网页这么简单,它可供安装的扩展程序和油猴插件,更为提供网页... 查看详情

不扩展油猴插件可以刷课吗

...简介:本文介绍怎么用tampermonkey来刷课以及好用的刷网课油猴脚本推荐,并以超星慕课小工具介绍一下刷课油猴脚本的使用方法。我们今天想要通过刷新页面来增加学习次数,所必须的工具有两个:1、tampermonkey俗称油猴,油猴... 查看详情

easystreamclient对接海康流媒体v4.x实现无插件播放流程记录(代码片段)

之前有一位朋友找到我们寻求帮助,需要解决对接海康流媒体的问题,当时对接的是海康流媒体V4.X,因为平台只支持SDK方式对接,无法满足无插件播放的需求,后来经过与海康官方SDK联系后,取得了开发... 查看详情

tampermonkey油猴脚本管理插件-最强浏览器插件的安装使用全攻略

...说过Tampermonkey用户脚本管理器,也就是中文所说的“油猴”这个chrome插件了。 油猴号称全商店最强的浏览器插件绝非浪得虚名,一个油猴脚本管理器可以代替数十个浏览器插件,有“浏览器黑科技”之称。 ... 查看详情

解决网盘下载速度慢的问题(代码片段)

...|百度云不限速解析|速盘-SpeedPan|SpeedPan|ProxyeeDown|ProxyeeDown|油猴脚本|简易下载助手|简易下载助手油猴脚本|简易下载助手脚本|简易下载|度盘直链解析|度盘在线解析|度盘在线解析|度盘在线解析|毒盘在线解析|毒盘在线解析|毒盘在... 查看详情

如何安装tampermonkey

Tampermonkey怎么用Tampermonkey油猴插件安装使用脚本详细教程Tampermonkey油猴插件是Chrome上最流行的用户脚本管理插件了,可以通过安装脚本实现破解vip视频、百度网盘资源直接下载等实用功能,堪称神器。没接触过的用户还不知道Tam... 查看详情

百度网盘视频播放速度修改(代码片段)

chrome:右上角设置->moretools->developertools->console:加速1.5倍核心代码:videojs.getPlayers("video-player").html5player.tech_.setPlaybackRate(1.5)可修改加速倍数videojs.getPlayers("video-player").html5player.tech 查看详情

无vip倍速播放百度网盘视频(代码片段)

在播放页面按F12打开控制台,选择console,复制如下代码并回车:videojs.getPlayers("video-player").html5player.tech_.setPlaybackRate(1.5)1.5是倍速,要的倍速调成相应地数字即可likeqcends 查看详情

在线翻译计算学习去除所有广告的csdn浏览器助手(代码片段)

...1.Github增强-高速下载2.右键在新标签中打开图片时显示最优化图像质量3.SearchByImage4.文本选中复制5.Google网页翻译6.youtube中文字幕7.简悦(SimpRead)·轻阅版8.AC-baidu六、建议一、前言        CSDN浏览器助手v2.16.1已全新上线,不... 查看详情

网页播放器开发代码精炼提纯(代码片段)

四、精简提炼我们的播放器基本实现了,但是代码复用不高,所以我们要进行封装,以插件的形式体现。1.插件的基本运行代码如下: ;(function(undefined)‘usestrict‘;......)()  上述代码就是基本的插件代码,下面详细记录... 查看详情