自动跳过视频最后的充电鸣谢页面
< Commentaires sur 跳过bilibili充电鸣谢
好用。建议加一个监听条件,防止多次点击。
(function () { let found = 0; // 定时器 let id = setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0].click(); found = 1; } if (found) clearInterval(id); // 已点击,清除定时器 }, 100) })();
刚刚发现这样会出现只能够跳过一次的情况。所以不行。可以用 remove 来解决:
(function () { // 定时器 setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 let el = document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0]; el.click(); el.remove(); // 移除,防止重复点击 } }, 100); })();
原作者的代码存在跳过后回调视频进度条后,暂停,会出现播放结束页面的问题。
试了试你的代码,不存在上述问题。
但你的代码(更新后的)在我这里只会跳过一次。
Chrome
Tampermonkey v4.16.1
原作者的代码存在跳过后回调视频进度条后,暂停,会出现播放结束页面的问题。
试了试你的代码,不存在上述问题。
但你的代码(更新后的)在我这里只会跳过一次。
Chrome
Tampermonkey v4.16.1
试试
(function () { // 定时器 setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 let el = document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0]; el.click(); el.remove(); // 移除,防止重复点击 } }, 100); })();
原作者的代码存在跳过后回调视频进度条后,暂停,会出现播放结束页面的问题。
试了试你的代码,不存在上述问题。
但你的代码(更新后的)在我这里只会跳过一次。
Chrome
Tampermonkey v4.16.1试试
(function () { // 定时器 setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 let el = document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0]; el.click(); el.remove(); // 移除,防止重复点击 } }, 100); })();
我试的就是这个
第二次出现充电页面的时候跳过按钮已经被移除了,不会被模拟点击。
原作者的代码存在跳过后回调视频进度条后,暂停,会出现播放结束页面的问题。
试了试你的代码,不存在上述问题。
但你的代码(更新后的)在我这里只会跳过一次。
Chrome
Tampermonkey v4.16.1试试
(function () { // 定时器 setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 let el = document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0]; el.click(); el.remove(); // 移除,防止重复点击 } }, 100); })();我试的就是这个
第二次出现充电页面的时候跳过按钮已经被移除了,不会被模拟点击。
好吧,的确有问题。试试这个:
(function () { function start() { let found = 0; // 定时器 let id = setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0].click(); found = 1; } if (found) { clearInterval(id); // 已点击,清除定时器 start(); } }, 100) } start(); })();
原作者的代码存在跳过后回调视频进度条后,暂停,会出现播放结束页面的问题。
试了试你的代码,不存在上述问题。
但你的代码(更新后的)在我这里只会跳过一次。
Chrome
Tampermonkey v4.16.1试试
(function () { // 定时器 setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 let el = document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0]; el.click(); el.remove(); // 移除,防止重复点击 } }, 100); })();我试的就是这个
第二次出现充电页面的时候跳过按钮已经被移除了,不会被模拟点击。
然而发现重复调用那个 start 函数其实和原脚本没什么差别,应该还是会存在多次点击的问题。所以换了一种实现(依赖于 jQuery 和 arrive.js),效率更高,而且应该没什么其他问题:
// ==UserScript== // @name 跳过bilibili充电鸣谢 // @namespace https://plushine.cn // @version 1.3 // @description 自动跳过视频最后的充电鸣谢页面 // @require http://code.jquery.com/jquery-3.4.1.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js // @author XJHui // @match https://www.bilibili.com/video/* // @grant GM_log // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest // @grant GM_deleteValue // @license MIT License // ==/UserScript== (function () { $(document).arrive('.bilibili-player-electric-panel-jump-content', function(){ $('.bilibili-player-electric-panel-jump-content').trigger('click'); }); })();
原作者的代码存在跳过后回调视频进度条后,暂停,会出现播放结束页面的问题。
试了试你的代码,不存在上述问题。
但你的代码(更新后的)在我这里只会跳过一次。
Chrome
Tampermonkey v4.16.1试试
(function () { // 定时器 setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 let el = document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0]; el.click(); el.remove(); // 移除,防止重复点击 } }, 100); })();我试的就是这个
第二次出现充电页面的时候跳过按钮已经被移除了,不会被模拟点击。然而发现重复调用那个 start 函数其实和原脚本没什么差别,应该还是会存在多次点击的问题。所以换了一种实现(依赖于 jQuery 和 arrive.js),效率更高,而且应该没什么其他问题:
// ==UserScript== // @name 跳过bilibili充电鸣谢 // @namespace https://plushine.cn // @version 1.3 // @description 自动跳过视频最后的充电鸣谢页面 // @require http://code.jquery.com/jquery-3.4.1.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js // @author XJHui // @match https://www.bilibili.com/video/* // @grant GM_log // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest // @grant GM_deleteValue // @license MIT License // ==/UserScript== (function () { $(document).arrive('.bilibili-player-electric-panel-jump-content', function(){ $('.bilibili-player-electric-panel-jump-content').trigger('click'); }); })();
很怪 我这里还是只能跳过一次
原作者的代码存在跳过后回调视频进度条后,暂停,会出现播放结束页面的问题。
试了试你的代码,不存在上述问题。
但你的代码(更新后的)在我这里只会跳过一次。
Chrome
Tampermonkey v4.16.1试试
(function () { // 定时器 setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 let el = document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0]; el.click(); el.remove(); // 移除,防止重复点击 } }, 100); })();我试的就是这个
第二次出现充电页面的时候跳过按钮已经被移除了,不会被模拟点击。然而发现重复调用那个 start 函数其实和原脚本没什么差别,应该还是会存在多次点击的问题。所以换了一种实现(依赖于 jQuery 和 arrive.js),效率更高,而且应该没什么其他问题:
// ==UserScript== // @name 跳过bilibili充电鸣谢 // @namespace https://plushine.cn // @version 1.3 // @description 自动跳过视频最后的充电鸣谢页面 // @require http://code.jquery.com/jquery-3.4.1.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js // @author XJHui // @match https://www.bilibili.com/video/* // @grant GM_log // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest // @grant GM_deleteValue // @license MIT License // ==/UserScript== (function () { $(document).arrive('.bilibili-player-electric-panel-jump-content', function(){ $('.bilibili-player-electric-panel-jump-content').trigger('click'); }); })();很怪 我这里还是只能跳过一次
不知道是不是因为没有禁用原脚本。我这里工作正常。可以换其他脚本,比如 https://greasyfork.org/zh-CN/scripts/432351-%E8%B7%B3%E8%BF%87bilibili%E5%85%85%E7%94%B5%E9%B8%A3%E8%B0%A2
原作者的代码存在跳过后回调视频进度条后,暂停,会出现播放结束页面的问题。
试了试你的代码,不存在上述问题。
但你的代码(更新后的)在我这里只会跳过一次。
Chrome
Tampermonkey v4.16.1试试
(function () { // 定时器 setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 let el = document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0]; el.click(); el.remove(); // 移除,防止重复点击 } }, 100); })();我试的就是这个
第二次出现充电页面的时候跳过按钮已经被移除了,不会被模拟点击。然而发现重复调用那个 start 函数其实和原脚本没什么差别,应该还是会存在多次点击的问题。所以换了一种实现(依赖于 jQuery 和 arrive.js),效率更高,而且应该没什么其他问题:
// ==UserScript== // @name 跳过bilibili充电鸣谢 // @namespace https://plushine.cn // @version 1.3 // @description 自动跳过视频最后的充电鸣谢页面 // @require http://code.jquery.com/jquery-3.4.1.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js // @author XJHui // @match https://www.bilibili.com/video/* // @grant GM_log // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest // @grant GM_deleteValue // @license MIT License // ==/UserScript== (function () { $(document).arrive('.bilibili-player-electric-panel-jump-content', function(){ $('.bilibili-player-electric-panel-jump-content').trigger('click'); }); })();很怪 我这里还是只能跳过一次
不知道是不是因为没有禁用原脚本。我这里工作正常。可以换其他脚本,比如 https://greasyfork.org/zh-CN/scripts/432351-%E8%B7%B3%E8%BF%87bilibili%E5%85%85%E7%94%B5%E9%B8%A3%E8%B0%A2
我禁用了原脚本
嗯..这个脚本也是不行
我又换Edge + Tampermonkey 试了一下,还是有同样的问题。
不知道你有没有理解我指的问题,我是指:在不开启自动连播的情况下,触发一次跳过后,拖回进度条等他播放完毕,无法二次触发跳过。
可以提供一下你的运行环境吗?
原作者的代码存在跳过后回调视频进度条后,暂停,会出现播放结束页面的问题。
试了试你的代码,不存在上述问题。
但你的代码(更新后的)在我这里只会跳过一次。
Chrome
Tampermonkey v4.16.1试试
(function () { // 定时器 setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 let el = document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0]; el.click(); el.remove(); // 移除,防止重复点击 } }, 100); })();我试的就是这个
第二次出现充电页面的时候跳过按钮已经被移除了,不会被模拟点击。然而发现重复调用那个 start 函数其实和原脚本没什么差别,应该还是会存在多次点击的问题。所以换了一种实现(依赖于 jQuery 和 arrive.js),效率更高,而且应该没什么其他问题:
// ==UserScript== // @name 跳过bilibili充电鸣谢 // @namespace https://plushine.cn // @version 1.3 // @description 自动跳过视频最后的充电鸣谢页面 // @require http://code.jquery.com/jquery-3.4.1.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js // @author XJHui // @match https://www.bilibili.com/video/* // @grant GM_log // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest // @grant GM_deleteValue // @license MIT License // ==/UserScript== (function () { $(document).arrive('.bilibili-player-electric-panel-jump-content', function(){ $('.bilibili-player-electric-panel-jump-content').trigger('click'); }); })();很怪 我这里还是只能跳过一次
不知道是不是因为没有禁用原脚本。我这里工作正常。可以换其他脚本,比如 https://greasyfork.org/zh-CN/scripts/432351-%E8%B7%B3%E8%BF%87bilibili%E5%85%85%E7%94%B5%E9%B8%A3%E8%B0%A2
我禁用了原脚本
嗯..这个脚本也是不行
我又换Edge + Tampermonkey 试了一下,还是有同样的问题。
不知道你有没有理解我指的问题,我是指:在不开启自动连播的情况下,触发一次跳过后,拖回进度条等他播放完毕,无法二次触发跳过。
可以提供一下你的运行环境吗?
你不这么说一下我怕是这辈子都不可能理解你的问题了...
(function () { function start(){ $(document).arrive('.bilibili-player-electric-panel', {fireOnAttributesModification: true, onceOnly: true}, function(){ $('.bilibili-player-electric-panel-jump-content').trigger('click'); start(); }); } start(); })();
原作者的代码存在跳过后回调视频进度条后,暂停,会出现播放结束页面的问题。
试了试你的代码,不存在上述问题。
但你的代码(更新后的)在我这里只会跳过一次。
Chrome
Tampermonkey v4.16.1试试
(function () { // 定时器 setInterval(() => { // 判断是否加载充电鸣谢 if (document.getElementsByClassName('bilibili-player-electric-panel-jump')[0]) { // 模拟点击 let el = document.getElementsByClassName('bilibili-player-electric-panel-jump-content')[0]; el.click(); el.remove(); // 移除,防止重复点击 } }, 100); })();我试的就是这个
第二次出现充电页面的时候跳过按钮已经被移除了,不会被模拟点击。然而发现重复调用那个 start 函数其实和原脚本没什么差别,应该还是会存在多次点击的问题。所以换了一种实现(依赖于 jQuery 和 arrive.js),效率更高,而且应该没什么其他问题:
// ==UserScript== // @name 跳过bilibili充电鸣谢 // @namespace https://plushine.cn // @version 1.3 // @description 自动跳过视频最后的充电鸣谢页面 // @require http://code.jquery.com/jquery-3.4.1.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js // @author XJHui // @match https://www.bilibili.com/video/* // @grant GM_log // @grant GM_addStyle // @grant GM_setValue // @grant GM_getValue // @grant GM_xmlhttpRequest // @grant GM_deleteValue // @license MIT License // ==/UserScript== (function () { $(document).arrive('.bilibili-player-electric-panel-jump-content', function(){ $('.bilibili-player-electric-panel-jump-content').trigger('click'); }); })();很怪 我这里还是只能跳过一次
不知道是不是因为没有禁用原脚本。我这里工作正常。可以换其他脚本,比如 https://greasyfork.org/zh-CN/scripts/432351-%E8%B7%B3%E8%BF%87bilibili%E5%85%85%E7%94%B5%E9%B8%A3%E8%B0%A2
我禁用了原脚本
嗯..这个脚本也是不行
我又换Edge + Tampermonkey 试了一下,还是有同样的问题。
不知道你有没有理解我指的问题,我是指:在不开启自动连播的情况下,触发一次跳过后,拖回进度条等他播放完毕,无法二次触发跳过。
可以提供一下你的运行环境吗?你不这么说一下我怕是这辈子都不可能理解你的问题了...
(function () { function start(){ $(document).arrive('.bilibili-player-electric-panel', {fireOnAttributesModification: true, onceOnly: true}, function(){ $('.bilibili-player-electric-panel-jump-content').trigger('click'); start(); }); } start(); })();
完美解决了!
谢谢
好用。建议加一个监听条件,防止多次点击。