继续教育的刷时问题

所谓道高一尺,魔高一丈。

通常在网络视频课程学习时,获得学习积分有两类:

第一类: 通过用户心跳检测用户是否在线,同时服务器端根据在线时长与其它逻辑积分。

(这种方案在客户端是无论如何也快不了的,只能老老实实消耗相应的时间)

第二类: 通过看完视频(发出ended事件)、视频播放时间达到临近结尾时、视频播放经过事先设定的几个时间锚点时等逻辑来触发得到积分(本贴仅讨论这类)。

针对这类触发方式,用以下三行代码来分别对应:

  1. 直接发送视频观看完成事件(当前的寒假研修就是这种方式):
document.querySelector("video").dispatchEvent(new Event("ended"))
  1. 直接设置视频播放到结尾(人力资源网有一类视频就是这种):
var v=document.querySelector("video");
if(v){
    v.muted=true;
    v.currentTime=Math.floor(v.duration);
    v.play();
}
```js
var v=document.querySelector("video");
if(v){
    v.muted=true;
    v.playbackRate=16;//0.1-16任意设置
    v.play();
}
  1. 其实还有一种就是通过控制台的网络面板,编辑并重播请求(EDGE中是这样的称呼),修改相应的参数再提交一次。【这种比较危险,不建议使用】

以上js代码如何运行?

1 写成浏览器插件,这个需要有一定的js知识并阅读浏览器插件写作规范,相对新手不太友好,但它可以实现批量自动化,全程无需人肉干预。
2 粘贴代码到油猴插件中运行,也比较繁琐,个人不推荐。
3 直接在浏览器中运行【强烈推荐】。

运行方法如下(以第一种方案的代码为例,其它方案只是要运行的代码不同):

(1) 在观看视频的页面地址栏输入【适用于临时执行一次】


javascript: document.querySelector("video").dispatchEvent(new Event("ended"))

【注意javascript:】这个单词和冒号在地址栏是不能粘贴的,只能手动输入

(2) 把代码添加到收藏夹中,要运行时就点击一下【适用于反复执行】。
(3) 也可以在观看视频的页面按F12打开浏览器的控制台,选择Console(控制台)在 > 后面输入然后回车【适用于执行多行或者需要查看返回信息的情况】

document.querySelector("video").dispatchEvent(new Event("ended"))
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值