上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
12下一页
返回列表 发新帖

关于控制视频网站播放器进度条的问题

[复制链接]

该用户从未签到

2

主题

12

回帖

13

积分

助理工程师

积分
13
发表于 2022-3-13 16:26:23 | 显示全部楼层 | 阅读模式
悬赏30油猫币未解决
写了一个一键跳过片头的脚本(进度条快进一分半)
开始在b站普通视频能运行成功,然后在番剧页面开始写,控制台显示读不到currentTime
let triple=document.createElement("button");
triple.innerText="一键跳过片头";
triple.style.background="#3498db";
triple.style.color="#fff";

var video = document.querySelector('video');

triple.onclick=function(){
    //快进代码
    var now_time = video.currentTime;
    //计算快进后的播放时间点
    var new_time = now_time + 90;
    //新值赋值回去
    video.currentTime = new_time;
};
//下面的是按钮的位置
let ops=document.querySelector('#arc_toolbar_report .ops');
ops.addEventListener("DOMNodeInserted", function(event) {
    let share=document.querySelector('.share');
    share.parentElement.insertBefore(triple,share);
});


以上的是在普通b站视频上可以运行的
以下是在番剧页面运行的
let triple=document.createElement("button");
triple.innerText="一键跳过片头";
triple.style.background="#3498db";
triple.style.color="#fff";
var video = document.querySelector('video')
triple.onclick=function(){
    //快进代码
    var now_time = video.currentTime;
    //计算快进后的播放时间点
    var new_time = now_time + 90;
//     //新值赋值回去
    video.currentTime = new_time;
};
//下面的是按钮的位置
let ops=document.querySelector('.media-wrapper #toolbar_module');
ops.addEventListener("DOMNodeInserted", function(event) {
    let share=document.querySelector('.like-info');
    share.parentElement.insertBefore(triple,share);
});

点了按钮后控制台报错

以下是番剧页面播放器的标签
<video crossorigin="anonymous" preload="auto" src="blob:https://www.bilibili.com/6b7c6925-467c-4c7c-abe8-1c3dc9a73617" style="width: 75%; height: 75%;"></video>

求大佬支招

该用户从未签到

2

主题

12

回帖

13

积分

助理工程师

积分
13
发表于 2022-3-13 16:28:19 | 显示全部楼层
本帖最后由 葭月二六 于 2022-3-13 16:29 编辑

点了按钮控制台报错
Uncaught TypeError: Cannot read properties of null (reading 'currentTime')
    at HTMLButtonElement.triple.onclick(省略)
triple.onclick        @        userscript.html?name…6bc-75a45057147b:23
回复

使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-3-13 17:14:09 | 显示全部楼层
    哥哥给一个番剧的视频地址
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-3-13 17:14:10 | 显示全部楼层
    哥哥给一个番剧的视频地址
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    12

    回帖

    13

    积分

    助理工程师

    积分
    13
    发表于 2022-3-13 17:17:03 | 显示全部楼层
    李恒道 发表于 2022-3-13 17:14
    哥哥给一个番剧的视频地址

    https://www.bilibili.com/bangumi/play/ep450024?from_spmid=666.4.0.0
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-3-13 17:38:29 | 显示全部楼层
    葭月二六 发表于 2022-3-13 17:17
    https://www.bilibili.com/bangumi/play/ep450024?from_spmid=666.4.0.0

    哥哥完整脚本发出来看看?
    我这里读到属性了....
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    12

    回帖

    13

    积分

    助理工程师

    积分
    13
    发表于 2022-3-13 17:39:14 | 显示全部楼层
    李恒道 发表于 2022-3-13 17:38
    哥哥完整脚本发出来看看?
    我这里读到属性了....

    // ==UserScript==
    // @name         B站一键跳过番剧片头(一键一分半,可在配置文件修改)
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try to take over the world!
    // @author       You
    // @match        https://www.bilibili.com/video/*
    // @match        https://www.bilibili.com/*
    // @grant        none
    // @run-at       document-end
    // @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
    // ==/UserScript==

    let triple=document.createElement("button");
    triple.innerText="一键跳过片头";
    triple.style.background="#3498db";
    triple.style.color="#fff";
    var video = document.getElementById('video')
    triple.onclick=function(){
        //快进代码
        var now_time = video.currentTime;
        //计算快进后的播放时间点
        var new_time = now_time + 90;
    //     //新值赋值回去
        video.currentTime = new_time;
    };

    let ops=document.querySelector('.media-wrapper #toolbar_module');
    ops.addEventListener("DOMNodeInserted", function(event) {
        let share=document.querySelector('.like-info');
        share.parentElement.insertBefore(triple,share);
    });
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    12

    回帖

    13

    积分

    助理工程师

    积分
    13
    发表于 2022-3-13 17:44:38 | 显示全部楼层
    刚才那个没改getElementById  这次改成querySelector了  querySelector能在普通视频播放 但是不能在番剧播放
    // ==UserScript==
    // @name         B站一键跳过番剧片头(一键一分半,可在配置文件修改)
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try to take over the world!
    // @author       You
    // @match        https://www.bilibili.com/video/*
    // @match        https://www.bilibili.com/*
    // @grant        none
    // @run-at       document-end
    // @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
    // ==/UserScript==

    let triple=document.createElement("button");
    triple.innerText="一键跳过片头";
    triple.style.background="#3498db";
    triple.style.color="#fff";
    var video = document.querySelector('video')
    triple.onclick=function(){
        //快进代码
        var now_time = video.currentTime;
        //计算快进后的播放时间点
        var new_time = now_time + 90;
    //     //新值赋值回去
        video.currentTime = new_time;
    };

    let ops=document.querySelector('.media-wrapper #toolbar_module');
    ops.addEventListener("DOMNodeInserted", function(event) {
        let share=document.querySelector('.like-info');
        share.parentElement.insertBefore(triple,share);
    });
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-3-13 18:07:24 | 显示全部楼层
    葭月二六 发表于 2022-3-13 17:44
    刚才那个没改getElementById  这次改成querySelector了  querySelector能在普通视频播放 但是不能在番剧播 ...

    目前存在两个问题
    页面启动之后video没有初始化脚本就运行了
    没找到元素,返回了一个null
    而哥哥在null上找currenttime属性
    第二个问题是dom插入监听没做检测判断
    无限执行了
    报错
    Maximum call stack size exceeded
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    12

    回帖

    13

    积分

    助理工程师

    积分
    13
    发表于 2022-3-13 18:10:41 | 显示全部楼层
    李恒道 发表于 2022-3-13 18:07
    目前存在两个问题
    页面启动之后video没有初始化脚本就运行了
    没找到元素,返回了一个null

    好的好的大佬,我去看看怎么解决,还有一个是这个脚本我在b站普通视频上可以跳进度,番剧的就不行,我试试你说的
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表