Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中单击空格暂停视频而不关闭页面_Javascript_Reactjs_Ajax - Fatal编程技术网

如何在JavaScript中单击空格暂停视频而不关闭页面

如何在JavaScript中单击空格暂停视频而不关闭页面,javascript,reactjs,ajax,Javascript,Reactjs,Ajax,我使用JavaScript构建自定义视频播放器,当我单击空格停止视频时,页面会关闭,我需要防止出现这种情况 我的JavaScript代码 window.onkeydown = vidCtrl; function vidCtrl(e){ const vid = document.querySelector('video') const key = e.code; if (key === 'ArrowLeft') { vid.cur

我使用JavaScript构建自定义视频播放器,当我单击空格停止视频时,页面会关闭,我需要防止出现这种情况

我的JavaScript代码

      window.onkeydown = vidCtrl;

    function vidCtrl(e){
      const vid = document.querySelector('video')
      const key = e.code;

      if (key === 'ArrowLeft') {
    vid.currentTime -= 5;
    if (vid.currentTime < 0) {
      vid.pause();
      vid.currentTime = 0;
    }
  } else if (key === 'ArrowRight') {
    vid.currentTime += 5;
    if (vid.currentTime > vid.duration) {
      vid.pause();
      vid.currentTime = 0;
    }
  } else if (key === 'Space') {
    if (vid.paused || vid.ended) {
      vid.play();
    } else {
      vid.pause();
    }
  
  
  }
window.onkeydown=vidCtrl;
函数vidCtrl(e){
const vid=document.querySelector(“视频”)
const key=e.code;
如果(键=='ArrowLeft'){
vid.currentTime-=5;
如果(参考当前时间<0){
参阅暂停();
vid.currentTime=0;
}
}否则如果(键==='ArrowRight'){
vid.currentTime+=5;
if(视频当前时间>视频持续时间){
参阅暂停();
vid.currentTime=0;
}
}else if(键=='Space'){
如果(参见暂停| |参见结束){
视频播放();
}否则{
参阅暂停();
}
}
当用户按下空格键以防止出现不需要的滚动时,添加
e.preventDefault()

else if (key === 'Space') {
    e.preventDefault();
    if (vid.paused || vid.ended) {
      vid.play();
    } else {
      vid.pause();
    }
  
  
  }

尝试调用
e.preventDefault()
,这将阻止关键事件执行其正常行为,即滚动页面或键入字母

但是,您必须小心。将事件侦听器添加到整个窗口可能会导致许多副作用。如果有人试图做一些简单的事情,例如在您的网页输入中键入一个句子,该怎么办?仅使用
e.preventDefault()
在窗口级别,如果用户无法在该页面上进行其他输入或键盘交互