Sunset
652 字
3 分钟
破解学习通鼠标移出屏幕自动暂停视网课播放
海螺呀大家,最近用电脑刷学习通发现学习通真的太不做人了!当你打开网课界面刷网课的时候,如果把鼠标移出浏览器窗口,视频就会自动暂停!
真是的,那我怎么写作业啊,该不会真让我看这些东西吧。。。
作为一个学习计算机的大学生,当然不能被这样的困难打倒,经过f12的一番搜寻,最终找到了解决办法!
第一步 按下f12(右键空白处选择检查)唤出开发者界面,如下:

在下边找到事件侦听器,然后稍微翻一下找到mouseout这个事件

展开后会发现以window开头的事件,点击删除就好。你说为什么你的打开只有一个而我的有两个?
其实这个课程有几个网课就会扔上去几个事件,这也真是有点无语了hhh
window开头的删除就好了,body的不用管,这样就可以实现挂机刷课了,不管是放后台还是最小化都可以用。
让我们欣赏一下学习通的js:
createListenerWrap: function(p, j, m, l, i) { i = i || {}; var n, o, k = function(s, q) { if (!o) { n = ["if(!" + Ext.name + ") {return;}"]; if (i.buffer || i.delay || i.freezeEvent) { if (i.freezeEvent) { n.push("e = X.EventObject.setEvent(e);") } n.push("e = new X.EventObjectImpl(e, " + (i.freezeEvent ? "true" : "false") + ");") } else { n.push("e = X.EventObject.setEvent(e);") } if (i.delegate) { n.push('var result, t = e.getTarget("' + (i.delegate + "").replace(d, "\\\\") + '", this);'); n.push("if(!t) {return;}") } else { n.push("var t = e.target, result;") } if (i.target) { n.push("if(e.target !== options.target) {return;}") } if (i.stopEvent) { n.push("e.stopEvent();") } else { if (i.preventDefault) { n.push("e.preventDefault();") } if (i.stopPropagation) { n.push("e.stopPropagation();") } } if (i.normalized === false) { n.push("e = e.browserEvent;") } if (i.buffer) { n.push("(wrap.task && clearTimeout(wrap.task));"); n.push("wrap.task = setTimeout(function() {") } if (i.delay) { n.push("wrap.tasks = wrap.tasks || [];"); n.push("wrap.tasks.push(setTimeout(function() {") } n.push("result = fn.call(scope || dom, e, t, options);"); if (i.single) { n.push("evtMgr.removeListener(dom, ename, fn, scope);") } if (j !== "mousemove" && j !== "unload") { n.push("if (evtMgr.idleEvent.listeners.length) {"); n.push("evtMgr.idleEvent.fire();"); n.push("}") } if (i.delay) { n.push("}, " + i.delay + "));") } if (i.buffer) { n.push("}, " + i.buffer + ");") } n.push("return result;"); o = Ext.cacheableFunctionFactory("e", "options", "fn", "scope", "ename", "dom", "wrap", "args", "X", "evtMgr", n.join("\n")) } return o.call(p, s, i, m, l, j, p, k, q, Ext, a) }; return k },是把,,,挺复杂的,反正好多我是看不懂,但是不难猜出来,如果鼠标超过了浏览器边框,freezeEvent则会生效,虽然没办法定位具体是哪里实现这个功能的,但大概是暂停了视频吧。
chatgpt表示:ExtJS 动态生成的事件包装器:为 mouseout 等 DOM 事件注入防抖、延迟、事件代理和标准化处理。
就这样解决了,,,大家也要好好复习期末!
破解学习通鼠标移出屏幕自动暂停视网课播放
https://vilstia.org/posts/技术文章/old/破解学习通鼠标移出屏幕自动暂停视网课播放/