// ==UserScript== // @name 企学宝后台播放 // @namespace local // @version 1.0 // @description **企学宝**-禁止🚫后台播放,切换页签后就暂停播放,安装脚本可以在后台播放,不会影响摸鱼,学习娱乐两不误。 // @match https://*.lmschina.net/* // @run-at document-start // @grant none // ==/UserScript== (function () { 'use strict'; // 1. 让它永远认为页面有焦点(干掉 timeupdate 里的检查) var alwaysFocus = function () { return true; }; try { Object.defineProperty(Document.prototype, 'hasFocus', { value: alwaysFocus, configurable: true, writable: true }); } catch (e) {} try { document.hasFocus = alwaysFocus; } catch (e) {} // 2. 永远"可见"(给 PPT/文档类课件用) var fake = function (obj, prop, val) { try { Object.defineProperty(obj, prop, { get: function () { return val; }, configurable: true }); } catch (e) {} }; fake(document, 'hidden', false); fake(document, 'visibilityState', 'visible'); fake(document, 'webkitHidden', false); fake(document, 'webkitVisibilityState', 'visible'); // 3. 事件层:在页面自己的监听器之前把事件吞掉 var swallow = function (e) { e.stopImmediatePropagation(); }; ['visibilitychange', 'webkitvisibilitychange'].forEach(function (t) { document.addEventListener(t, swallow, true); }); window.addEventListener('blur', swallow, true); // 4. 它用 window.onblur = fn 赋值,这里把这个属性锁死 try { Object.defineProperty(window, 'onblur', { configurable: false, get: function () { return null; }, set: function () {} }); } catch (e) {} })();