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

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



我就想能不能用 Tampermonkey 把 window.onblur 事件劫持了,不要运行后面的暂停函数。
6143 次点击
所在节点    问与答
38 条回复
Telegram
2017-11-09 16:31:11 +08:00
@xavierskip #18 你这个好像很彻底,不过感觉我那个网站流程比较复杂,不然我都打算自己写个客户端发请求了。
Telegram
2017-11-09 16:31:46 +08:00
@shyling #19
@begoingtodo #20
这 2 个思路不错,么么哒
xavierskip
2017-11-09 16:43:14 +08:00
@Telegramyun.chinahrt.com 这上面的课程吗?应该都是差不多的。会在服务端验证你的播放时间的,貌似绕不过去,专门的客户端也就没什么意义了,就在页面上修改脚本就可以了。
jin5354
2017-11-09 17:07:39 +08:00
charles map-remote 再也不用考虑本地 hack 了
Telegram
2017-11-09 18:12:46 +08:00
@xavierskip #23 对,就是 yun.chinahrt.com 的课程, 我到家仔细看了下,你的代码,确实应该一样的。我也看了下他的请求,貌似就是隔几秒一个请求,发送播放到的时间点 reqLessonLocation
Telegram
2017-11-09 19:37:38 +08:00
问题大概解决了,和大家分享一下:
这个页面有 2 个 iframe,根据 @xavierskip #18 提示,在 console 中选择 context,执行
window.onblur = function(){console.log('onblur')};
把 onblur 事件触发暂停给替换掉,然后就可以不触发暂停了。

然后看 network 发现,计时其实很简单,一开始太高看他了,就是每 30 秒一个请求而已。

这样的话,就可以直接写个程序开始脱机挂机了。懒得搞,用网页挂也可以。
Telegram
2017-11-09 20:03:56 +08:00
@xavierskip #23 然后我尝试了一下,服务端根本没做限制,我的天,可以一个请求秒杀。


直接改其中的 reqLessonLocation 就行了。这个就是播放进度,单位是秒。直接提交视频总时长的秒数,就直接学习完了。。。
xavierskip
2017-11-09 22:34:00 +08:00
@Telegram #27 好样的,不过我今年的学完了。留着明年看看还有没有用!
yingfengi
2017-11-09 23:35:54 +08:00
虚拟机,出
ysc3839
2017-11-10 04:42:37 +08:00
@Telegram 要感谢一下你,我去看了一下我学校的那个网站,发现也是 onblur 暂停。现在的方法是把 pauseMovie 改成 playMovie,最小化之后自动播放。
sypopo
2017-11-29 13:59:11 +08:00
@Telegram 具体怎么改呀
Telegram
2017-11-29 15:02:05 +08:00
@sypopo #31 同一个听课网站?
sypopo
2017-11-29 16:32:46 +08:00
同一个网站,失去焦点暂停播放搞定了,那个进度时间不知道怎么改。
sypopo
2017-11-29 16:33:32 +08:00
@Telegram 是的,同一个。
Telegram
2017-11-29 17:31:40 +08:00
@sypopo #34 改进度太暴力,就怕后台能看出来
Telegram
2017-11-29 17:34:36 +08:00
@sypopo #34 看我 27 楼那个图片,听课时抓个包,然后修改其中 reqLessonLocation 的值,然后发送这个包就行了。
sypopo
2017-11-29 18:23:30 +08:00
@Telegram 已经搞定学完了。
Telegram
2017-11-29 18:26:40 +08:00
@sypopo #37 真暴力,祝你好运

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

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

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

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

© 2021 V2EX