更新日志
← 返回登录页本次更新为小版本修复,修正了手机端提示不准确以及监考端实时观看画面闪烁的问题。
🔧 修复内容
手机端提示修正
修复了手机端浏览器(如移动版 Edge)显示错误提示的问题。现已增加移动设备检测,手机端会显示明确提示:"屏幕共享仅支持电脑端浏览器,请使用电脑参加考试",避免误导考生。
实时观看画面闪烁修复
修复了监考端实时观看页面画面不断闪烁回跳的问题。原因是每次收到新数据都会重建整个视频源导致播放重启。现已改为智能续播机制:画面正常播放时只积累新数据不打断,仅在播放到末尾或缓冲不足时才追加新内容,确保观看体验流畅稳定。
📱 设备要求与播放优化
- 屏幕共享功能仅限电脑端使用(Windows / macOS / Linux),手机端暂不支持
- 支持的浏览器:Chrome、Edge、Firefox(需最新版本)
- 实时观看画面已优化为无闪烁平滑播放
如在使用中发现任何问题,请及时反馈。
本次更新为问题修复,针对屏幕共享功能在实战测试中发现的若干问题进行了集中修正,确保监考流程顺畅可靠。
🔧 修复内容
弹窗交互优化
屏幕共享授权弹窗的按钮已改为"允许"和"退出"两个明确选项,去掉了"稍后再说"等可绕过选项。点击"允许"启动屏幕共享,点击"退出"则返回考试列表,行为更加清晰明确。
启动过程失焦误判修复
修复了点击"允许"后系统弹出屏幕选择对话框时,浏览器焦点切换被错误判定为违规失焦的问题。现在系统会在屏幕共享启动过程中自动暂停失焦检测,完成后自动恢复,确保正常操作不会被误判。
实时观看黑屏修复
修复了监考端实时观看页面始终显示黑屏的问题。根本原因是数据传输过程中的类型标识不匹配导致数据未被正确接收,现已修正传输层处理。同时将视频播放方式重构为更可靠的方案,确保在电脑端和手机端均可正常显示考生屏幕画面。
停止信号修复
修复了考生退出考试或关闭页面后,监考端仍显示"正在共享"的问题。原因是停止信号的数据格式无法被服务器正确解析,导致会话未能及时清除。现已修正信号发送方式,确保考生退出后监考端立即更新状态。
浏览器兼容性增强
修复了部分浏览器无法弹出屏幕共享弹窗的问题。现在即使在不支持的浏览器上也会显示授权弹窗并提供明确提示,引导考生切换到支持的浏览器(Chrome、Edge、Firefox)。同时优化了启动失败时的错误信息,针对拒绝授权、未选择屏幕、操作取消等不同情况给出区分提示。
监考面板状态显示修正
修复了已分配但尚未进入答题的考生在监考面板中显示为"答题中"的问题。现在会正确区分三种状态:未答题(尚未开始)、答题中(正在进行)、已提交(已完成),状态一目了然。
录像回放按钮修正
修复了监考面板中录像回放按钮指向未完成录像导致无法播放的问题。现在回放按钮仅在录像完整保存后才显示,确保每次点击都能正常观看。
✅ 验证确认
- 录像文件真实存储在服务器硬盘
/recordings目录下,格式为 WebM - 管理员和阅卷人均可通过后台"屏幕监考"页面查看实时画面和回放录像
- 实时观看功能已在电脑端和手机端验证可用
- 考生退出后监考端状态同步更新,不再残留"正在共享"
- 不支持屏幕共享的浏览器会显示提示引导切换
- 监考面板状态显示正确区分未答题/答题中/已提交
- 三级角色(管理员、阅卷人、考生)权限隔离正常,各页面鉴权正确
如在使用中发现任何问题,请及时反馈。
本次更新修复了所有 HTML 内容转义显示异常的问题:
- 修复公告弹窗显示HTML标签的问题:将 header.ejs 中的公告内容输出从 <%= %> 改为 <%- %>,确保 HTML 标签正常渲染
- 修复考生答案富文本失效的问题:在阅卷人、考生、管理员三个提交答案查看页面,将 content_html 输出改为非转义输出
- 修复页脚HTML显示问题:footer.ejs 中 site_footer 内容改为非转义输出
- 统一输出规范:所有富文本/HTML内容使用 <%- %> 非转义输出,所有纯文本数据使用 <%= %> 转义输出
本次更新修复了多项功能异常问题:
- 修复计时器显示为0的问题:修复 exam.duration_minutes 为 null 时导致计时时长计算为0的问题,增加数值校验和默认值兜底(默认120分钟),并在 startTimer 中重置开始时间为当前时间
- 修复全屏按钮无效的问题:修复 restoreFloatState 方法中 self 未定义导致 JS 执行中断的问题,改为使用 ExamApp._on 显式调用,确保安全事件正常绑定
- 修复失焦检测失效的问题:同 JS 执行中断问题修复,visibilitychange 和 blur 事件恢复正常监听
- EJS 模板优化:durationMinutes 和 alreadySubmitted 参数使用 safeJSON() 包裹,确保 JavaScript 语法正确