禁用鼠标离开网页/鼠标失焦监听

禁止网页通过多种方式检测鼠标是否离开页面或窗口失去焦点,旨在保护用户操作不被意外中断或记录。

질문, 리뷰하거나, 이 스크립트를 신고하세요.
개발자
MyOxygen U're
일일 설치수
4
총 설치수
8
평점
0 0 0
버전
v0.3.1
생성
2025-04-01
갱신
2025-04-01
크기
3.29KB
라이선스
MIT
동작 사이트

禁用鼠标离开的网页/鼠标失焦监听脚本说明



禁用鼠标离开的网页/鼠标失焦监听脚本

注意事项:此脚本旨在保护用户隐私,请勿用于非法用途。由于网页的复杂性和多样性,脚本可能无法在所有网站上完全生效。此脚本主要用于网课平台,也可以通用,只需改动 // @match 规则后的网页地址。

功能说明:

  1. 阻止 mouseout 和 mouseleave 事件监听器

    这是最直接的方法,阻止页面元素或文档本身监听到鼠标移出事件。使用 capture: true 确保在事件到达目标元素之前拦截它。

  2. 阻止 window 上的 blur 和 focusout 事件监听器

    防止页面通过监听 window 对象来检测窗口是否失去焦点。

  3. 伪造页面可见性状态 (Page Visibility API)

    重写 document.visibilityStatedocument.hidden 的 getter 方法,使其始终报告页面是可见的且未被隐藏。

  4. 拦截 visibilitychange 事件

    阻止页面监听到页面可见性变化的事件,配合第 3 点使用。

  5. 模拟鼠标持续在页面内活动 (可选,可能用于对抗闲置检测)

    定期在文档上触发一个假的 mousemove 事件。注意:这不直接阻止“鼠标离开窗口”的检测(那主要靠 section 1),其主要目的更可能是模拟用户活跃,防止某些基于鼠标移动的闲置超时检测。坐标 (100, 100) 是任意选择的页面内坐标。

  6. 重写旧式的 window.onblur 和 window.onfocus 事件处理

    一些旧代码可能直接使用 onblur/onfocus 属性来设置监听器。将其设置为 null 可以阻止这些旧式监听器的执行。window.onfocus 通常不需要阻止,但如果需要,也可以设为 null

  7. 防止通过 document.hasFocus() 方法检测页面焦点

    重写 Document 原型上的 hasFocus 方法,使其始终返回 true。直接修改原型可能会影响页面上其他 iframe (如果它们共享相同的原型链),但在用户脚本的上下文中通常是可接受的。

初始化:

脚本已初始化,鼠标离开/失焦检测已被禁用。