Есть ли событие, чтобы определить, когда пользователь взаимодействует со страницей? - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь автоматически воспроизвести видео, как только пользователь взаимодействует со страницей. Если я воспроизведу видео раньше, я, очевидно, получу ошибку безопасности:

Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.

Справедливо, я улавливаю эту ошибку и теперь хочу зарегистрировать событие , чтобы повторить воспроизведение , как только пользователь взаимодействует со страницей.

=> Есть ли такое событие в наличии?

Я пытался зарегистрировать события на mouseover / mousemove / touchmove / click / focus / visibility Изменен, но это не оптимально и не очень надежно после некоторых тестов ...

1 Ответ

0 голосов
/ 04 сентября 2018

Зарегистрируйте несколько событий и дождитесь, пока одно из них заработает.

let isPlaying = false;

["click", "mousemove", "mouseover", "mousemove", "touchmove", "focus"].forEach((eventName)=>{
  window.addEventListener(eventName, ()=>{
    if(!isPlaying){
      
      try{
        //play video here
        console.log("Video is playing");
        isPlaying = true;
      }catch(e){
        console.warn(e.message);
      }
      
    }
  }); 
});
...