请教前段牛,如何劫持 window.onblur 事件?

2017-11-09 14:45:28 +08:00
 Telegram
老妹是个注册会计,每年都要在 chinahrt.com 听一些无聊的东西,刷满 18 学时。
它的播放页是个 flash,听课时,只要该页面失去焦点,播放就暂停,也就无法计时了。



我就想能不能用 Tampermonkey 把 window.onblur 事件劫持了,不要运行后面的暂停函数。
6129 次点击
所在节点    问与答
38 条回复
hatw
2017-11-09 14:50:55 +08:00
开个虚拟机在里边让它自己播?在外边操作应该不影响虚拟机里边的浏览器焦点吧?
Telegram
2017-11-09 14:53:29 +08:00
@hatw #1 这个方案我是考虑过滴,算是备选的,不够优雅。哈哈
safedogcc
2017-11-09 14:54:20 +08:00
不用“劫持”,直接把 window.onblur 设置为 null,或者把 blurStop 函数设置为 null 即可(如果全局):

``` js
window.onblur = null;
blurStop = () => null;
```
a342191555
2017-11-09 14:54:58 +08:00
不知道直接 window.onblur=null 是否可以
Telegram
2017-11-09 14:59:22 +08:00
@safedogcc #3
@a342191555 #4
let me have a try
m939594960
2017-11-09 15:01:04 +08:00
你劫持 blurStop() 为啥要劫持 onblur
Telegram
2017-11-09 15:02:28 +08:00
@m939594960 #6 应该是我表述问题,哈哈,就是不让 blurStop()执行
Telegram
2017-11-09 15:22:55 +08:00
@safedogcc #3
@a342191555 #4
试了下,不行。看来没有辣么简单。

要是哪个大侠有兴趣帮忙看看,感激不尽了

我先去下个虚拟机先应付一下。
https://gist.github.com/anonymous/5576f83076d645fca4a9bdfea68b5e84
Sypher
2017-11-09 15:25:00 +08:00
注册会计,厉害了
safedogcc
2017-11-09 15:26:06 +08:00
@Telegram #8
其实可以换个角度,不用在 blurStop 上下功夫,模拟一下 onfocus 呢~~
``` js
setInterval(window.focus, 1000)
```
Telegram
2017-11-09 15:29:24 +08:00
@Sypher #9 这个,不带这么嘲讽的,小哥
m939594960
2017-11-09 15:39:27 +08:00
http://guajibao.me/ 一块钱一天。 100 块解决这个问题?
ysc3839
2017-11-09 15:52:59 +08:00
我们学校也有类似的任务要完成,我的做法是虚拟机
Telegram
2017-11-09 16:03:17 +08:00
@ysc3839 #13
这是另外一个需要学习的,那个系统比较简单,定时弹出知识点让你做题,同时播放暂停。只要把相应的弹出框隐藏,然后执行继续播放就行
Telegram
2017-11-09 16:04:11 +08:00
@m939594960 #12 我看了下,没那么便宜,还不如我的虚拟机
Telegram
2017-11-09 16:05:21 +08:00
@safedogcc #10 没那么简单,获得焦点不会触发继续播放,需要手动去点击播放按钮的,这后面可能涉及好几个操作,比如开始计时这些
hatw
2017-11-09 16:05:35 +08:00
@Telegram #2 简单嘛。。。系统再怎么改进反作弊都不怕。。。除非摄像头活人人脸识别了,哈哈哈
xavierskip
2017-11-09 16:20:28 +08:00
我有经验,弄过。先清除 onfocus 和 onblur,然后去掉所有的定时器,最后自己实现 ajax 发送请求。
不知道适不适合你的课程。

https://gist.github.com/xavierskip/8f4dd9d593dfe8ea1565f5753cdcdf4a
shyling
2017-11-09 16:26:49 +08:00
我以前的做法是用 charles 过滤那段脚本,把对应代码删掉。。。这方法应该靠谱
begoingtodo
2017-11-09 16:29:06 +08:00
whistle 或者 fiddler 工具会用么,本地替换线上代码,随你修改

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/404960

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX