首页
文章列表
交流群
文档
登录
用脚本在B站的视频上右键,然后点击精准空降菜单
2024-10-07 23:03:06
小程序码
文章目录
热门文章
整理下php学员遇到的一些问题
431
fastadmin监听或重写删除编辑按钮事件
285
phpstudy怎么手动安装php8.3.0版本?
275
文档:一个案例学会fastadmin插件开发
148
php基础入门课程资料文档课件
134
表单验证:密码和确认密码的验证和文字提示
76
百题斩:用递归方式扁平化嵌套数组
67
百题斩:字符串的逆序函数
60
案例代码:用油猴脚本统计b站课堂课程总时长
59
使用ffmpeg把mp4转为加密后的m3u8文件
55
有个粉丝朋友需要在quiker里做这个功能,右键视频,然后点击复制视频地址(精准空降),如下图: ![](https://resource.maoshu.fun/storage/default/20241007/image04c70dbf28f7befa22c8ebe30e233cff2727d68d.png?e=1732494139&token=Ov7mXAv_8azPtTTXXyhh0S5qpDFEhafGpHARTAg2:pYTjvC68D-KxBwb0CEfY2Pg8rag=) 研究了好久,终于做出,其中关键的一点是,要用 (()=>{})() 这个把核心代码包裹起来,否则就只能执行一次,当然,这是在quiker里,会有重复执行的问题,如果是在油猴脚本或者浏览器插件里,就不需要加这个了。 还有一个重要的代码,那就是触发右键菜单,这是模拟人工点开右键菜单的操作: ```js const contextmenu = new MouseEvent('contextmenu', { view: window, bubbles: true, cancelable: true }); video.dispatchEvent(contextmenu); ``` 看下最终代码: ```js (()=>{ let video = document.querySelector('#bilibili-player div div.bpx-player-primary-area > div.bpx-player-video-area > div.bpx-player-video-perch video'); if(!video){ video = document.querySelector('#bilibili-player div div.bpx-player-primary-area > div.bpx-player-video-area > div.bpx-player-video-perch bwp-video'); } // Create a contextmenu event const contextmenu = new MouseEvent('contextmenu', { view: window, bubbles: true, cancelable: true }); video.dispatchEvent(contextmenu); setTimeout(() => { const mousedown = new MouseEvent('mousedown', { view: window, bubbles: true, cancelable: true }); document.querySelector("#bilibili-player > div > div > div.bpx-player-context-area > ul > li:nth-child(1)").dispatchEvent(mousedown); }, 100); })() ``` 这段代码可以用在油猴脚本里,也可以用在quiker里的执行js里。