1.购买服务器阿里云:服务器购买地址https://t.aliyun.com/U/DT4XYh若失效,可用地址
阿里云:
服务器购买地址
https://t.aliyun.com/U/DT4XYh
若失效,可用地址
https://www.aliyun.com/activity/wuying/dj?source=5176.29345612&userCode=49hts92d
腾讯云:
https://curl.qcloud.com/wJpWmSfU
若失效,可用地址
https://cloud.tencent.com/act/cps/redirect?redirect=2446&cps_key=ad201ee2ef3b771157f72ee5464b1fea&from=console
华为云
https://activity.huaweicloud.com/cps.html?fromacct=64b5cf7cc11b4840bb4ed2ea0b2f4468&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905
2.部署教程
3.代码如下
(function () {
'use strict';
let posX = 10;
setInterval(() => {
// 生成交替坐标避免重复
posX = (posX === 10) ? 20 : 10;
// 创建并派发鼠标事件
const moveEvent = new MouseEvent('mousemove', {
bubbles: true,
cancelable: true,
clientX: posX,
clientY: 10
});
document.dispatchEvent(moveEvent);
}, 1 * 60 * 1000);
setInterval(function () {
var video = document.querySelector("video")
if (video && video.paused && !video.ended) {
video.play()
}
}, 5 * 1000)
})();
解析
该脚本用于安徽省卫生从业人员培训平台
(https://www.ahwsjdxh.cn/*
)页面上运行,辅助刷课,主要作用包括
定时模拟鼠标移动,防止页面因"长时间未操作"弹窗或暂停计时;
自动保持视频播放,当检测到视频被暂停且未播放结束时,自动调用
play()
继续播放。
主要方法 / 关键逻辑
定时模拟鼠标事件
let posX = 10;
setInterval(() => {
posX = (posX === 10) ? 20 : 10;
const moveEvent = new MouseEvent('mousemove', {bubbles: true, cancelable: true, clientX: posX, clientY: 10});
document.dispatchEvent(moveEvent);
}, 60 * 1000);
每 60 秒 构造并派发一次
mousemove
事件到document
。clientX
在 10 与 20 间来回切换,制造"位置变化",避免被识别为固定/无效事件。目的:持续保持页面"有人操作"的状态,减少超时弹窗或学习计时中断。
自动恢复视频播放
setInterval(function () {
var video = document.querySelector("video")
if (video && video.paused && !video.ended) {
video.play()
}
}, 5 * 1000)
每 5 秒 获取页面首个
<video>
元素;若存在且 处于暂停(
paused === true
)且 未播放完(!ended
),则调用video.play()
继续播放;目的:防止误暂停/被动暂停 导致学习进度停止。
总结
脚本通过模拟用户活动与自动续播视频,尽量保证课程视频能够连续播放并计时,减少"长时间未操作"造成的中断。
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论