监听考试页面失焦事件记录切出时间 页面聚焦时累积记录切入时间,累积时间大于1分钟自动交卷并移除时间 页面销毁移出事件 ***bug:必须把事件回调定义为方法,在销毁的时候才可以销毁  mounted ( )  { window. addEventListener ( 'blur' ,  this . blurDom) ; window. addEventListener ( 'focus' ,  this . focusDom) ; } , destroyed ( )  { console. log ( 1111111 ,  '页面销毁' ) window. removeEventListener ( 'blur' ,  this . blurDom) window. removeEventListener ( 'focus' ,  this . focusDom) } , methods :  { blurDom ( )  { this . start =  Date. now ( ) console. log ( 1111111 ,  '失去焦点' ,  this . start) } , focusDom ( )  { if  ( this . start ==  0 )  return this . end =  Date. now ( ) this . hideTime +=  this . end -  this . startconsole. log ( 1111111 ,  '页面聚焦' ,  this . end,  this . hideTime) if  ( this . hideTime >  1  *  60  *  1000 )  { console. log ( '没机会了' ) this . hilarity ( 1 ) window. removeEventListener ( 'blur' ,  this . blurDom) window. removeEventListener ( 'focus' ,  this . focusDom) }  else  { this . $message. warning ( '切屏时间超过'  +  this . setTime +  '分钟自动交卷' ) ; } } , } 
监听考试页面隐藏记录切出时间 页面显示时累积记录切入时间,累积时间大于1分钟自动交卷并移除时间 页面销毁移出事件 ***bug:必须把事件回调定义为方法,在销毁的时候才可以销毁  mounted ( )  { document. addEventListener ( "visibilitychange" ,  this . watchDom) ; } , destroyed ( )  { console. log ( 1111111 ,  '页面销毁' ) document. removeEventListener ( "visibilitychange" ,  this . watchDom)  } , methods :  { watchDom ( )  { if  ( document. visibilityState ==  'hidden' )  { this . start =  Date. now ( ) console. log ( 1111111 ,  'start' ,  this . start,  this . hideTime) }  else  { this . end =  Date. now ( ) this . hideTime +=  this . end -  this . startconsole. log ( 1111111 ,  'end' ,  this . end,  this . end -  this . start,  this . hideTime) if  ( this . hideTime >  1  *  60  *  1000 )  { this . hilarity ( 1 ) document. removeEventListener ( "visibilitychange" ,  this . watchDom)  }  else  { this . $message. warning ( '切屏时间超过'  +  this . setTime +  '分钟将自动交卷' ) ; } } } , }