1
hatw 2017-11-09 14:50:55 +08:00
开个虚拟机在里边让它自己播?在外边操作应该不影响虚拟机里边的浏览器焦点吧?
|
3
safedogcc 2017-11-09 14:54:20 +08:00
不用“劫持”,直接把 window.onblur 设置为 null,或者把 blurStop 函数设置为 null 即可(如果全局):
``` js window.onblur = null; blurStop = () => null; ``` |
4
a342191555 2017-11-09 14:54:58 +08:00
不知道直接 window.onblur=null 是否可以
|
5
Telegram OP |
6
m939594960 2017-11-09 15:01:04 +08:00
你劫持 blurStop() 为啥要劫持 onblur
|
7
Telegram OP @m939594960 #6 应该是我表述问题,哈哈,就是不让 blurStop()执行
|
8
Telegram OP @safedogcc #3
@a342191555 #4 试了下,不行。看来没有辣么简单。 要是哪个大侠有兴趣帮忙看看,感激不尽了 我先去下个虚拟机先应付一下。 https://gist.github.com/anonymous/5576f83076d645fca4a9bdfea68b5e84 |
9
Sypher 2017-11-09 15:25:00 +08:00
注册会计,厉害了
|
10
safedogcc 2017-11-09 15:26:06 +08:00
|
12
m939594960 2017-11-09 15:39:27 +08:00
http://guajibao.me/ 一块钱一天。 100 块解决这个问题?
|
13
ysc3839 2017-11-09 15:52:59 +08:00 via Android
我们学校也有类似的任务要完成,我的做法是虚拟机
|
14
Telegram OP @ysc3839 #13
这是另外一个需要学习的,那个系统比较简单,定时弹出知识点让你做题,同时播放暂停。只要把相应的弹出框隐藏,然后执行继续播放就行 |
15
Telegram OP @m939594960 #12 我看了下,没那么便宜,还不如我的虚拟机
|
16
Telegram OP @safedogcc #10 没那么简单,获得焦点不会触发继续播放,需要手动去点击播放按钮的,这后面可能涉及好几个操作,比如开始计时这些
|
18
xavierskip 2017-11-09 16:20:28 +08:00
我有经验,弄过。先清除 onfocus 和 onblur,然后去掉所有的定时器,最后自己实现 ajax 发送请求。
不知道适不适合你的课程。 https://gist.github.com/xavierskip/8f4dd9d593dfe8ea1565f5753cdcdf4a |
19
shyling 2017-11-09 16:26:49 +08:00
我以前的做法是用 charles 过滤那段脚本,把对应代码删掉。。。这方法应该靠谱
|
20
begoingtodo 2017-11-09 16:29:06 +08:00
whistle 或者 fiddler 工具会用么,本地替换线上代码,随你修改
|
21
Telegram OP @xavierskip #18 你这个好像很彻底,不过感觉我那个网站流程比较复杂,不然我都打算自己写个客户端发请求了。
|
22
Telegram OP |
23
xavierskip 2017-11-09 16:43:14 +08:00
@Telegram 是 yun.chinahrt.com 这上面的课程吗?应该都是差不多的。会在服务端验证你的播放时间的,貌似绕不过去,专门的客户端也就没什么意义了,就在页面上修改脚本就可以了。
|
24
jin5354 2017-11-09 17:07:39 +08:00
charles map-remote 再也不用考虑本地 hack 了
|
25
Telegram OP @xavierskip #23 对,就是 yun.chinahrt.com 的课程, 我到家仔细看了下,你的代码,确实应该一样的。我也看了下他的请求,貌似就是隔几秒一个请求,发送播放到的时间点 reqLessonLocation
|
26
Telegram OP 问题大概解决了,和大家分享一下:
这个页面有 2 个 iframe,根据 @xavierskip #18 提示,在 console 中选择 context,执行 window.onblur = function(){console.log('onblur')}; 把 onblur 事件触发暂停给替换掉,然后就可以不触发暂停了。 然后看 network 发现,计时其实很简单,一开始太高看他了,就是每 30 秒一个请求而已。 这样的话,就可以直接写个程序开始脱机挂机了。懒得搞,用网页挂也可以。 |
27
Telegram OP @xavierskip #23 然后我尝试了一下,服务端根本没做限制,我的天,可以一个请求秒杀。
直接改其中的 reqLessonLocation 就行了。这个就是播放进度,单位是秒。直接提交视频总时长的秒数,就直接学习完了。。。 |
28
xavierskip 2017-11-09 22:34:00 +08:00
@Telegram #27 好样的,不过我今年的学完了。留着明年看看还有没有用!
|
29
yingfengi 2017-11-09 23:35:54 +08:00 via Android
虚拟机,出
|
30
ysc3839 2017-11-10 04:42:37 +08:00 via Android
@Telegram 要感谢一下你,我去看了一下我学校的那个网站,发现也是 onblur 暂停。现在的方法是把 pauseMovie 改成 playMovie,最小化之后自动播放。
|
33
sypopo 2017-11-29 16:32:46 +08:00 via Android
同一个网站,失去焦点暂停播放搞定了,那个进度时间不知道怎么改。
|