简单说下场景需求:
有一个视频培训网站的需求,在播放视频时间隔一段时间就弹出确认框保证用户正在观看,在多少秒之内如果用户没有点击确认就自动下线,后续的观看不计入学习时长。类似于长时间不活动下线的处理。
现在遇到的问题是,网站中有优酷等站的第三方视频,(有flash的版本也有html5 video的)在全屏播放时,自己写的modal对话框无法弹到视频前面。反复实验只有原生的confirm可以弹到最前面。但是confirm是同步阻塞的,也就是说弹出的同时js暂停了执行,没法做计时和下线,和服务器通信等等处理了。有没有好的办法能够解决这一问题。
唔,之前理解错了。
看来没有更好的办法。ls说的隐藏视频感觉可以。
给 Flash 所在的 <object> 对象添加属性 wmode="opaque"
可以让 modal 跑到视频前面
windoww.confirm貌似是用的dialog,浏览器的实现就是同步的而不是异步的,所以本身可能就不能异步..
可以考虑的方法有:
- 让视频在confirm前最小化。youku就是这么做的吧,反正老是提示登陆的时候弹出来
- 用其他语言实现confirm,而不是javascript。。试试flash,silverlight之类的能不能搞定。不行自己搞个浏览器插件弹confirm呗。。。
我能想到的方法就这些,供参考