js - «заблокировать» или «перенаправить» все действия клавиатуры и колеса мыши - PullRequest
1 голос
/ 24 марта 2019

Можно ли "заблокировать" или "перенаправить" все действия с клавиатурой и колесом мыши с помощью некоторого кода js?Например, это может быть что-то, связанное с телом страницы.

Идея состоит в том, чтобы «запретить» пользователю взаимодействовать со страницей во время выполнения определенных операций js.В эти промежутки времени появляется div, охватывающий весь экран, и в его центре отображается анимированный GIF.

ПРИМЕЧАНИЕ. Пожалуйста, если возможно, представьте модель или пример того, как это можно сделать.


ОБНОВЛЕНИЕ: После выполнения вышеупомянутой операции js "block" или "redirect" удаляются.

Ответы [ 2 ]

1 голос
/ 24 марта 2019

Просто используйте preventDefault:

var events = "mousedown mouseup click dblclick mousemove mouseover mouseout mouseenter mouseleave scroll contextmenu keydown keypress keyup";
events.split(" ").forEach(event => document.addEventListener(event, e => e.preventDefault()));
<p>This is some example text. Please ignore it.</p>

Попробуйте выделить текст в приведенном выше фрагменте, а затем отменить его.

1 голос
/ 24 марта 2019

Вы можете прослушивать события на уровне документа.

[...events].forEach(e => {
  document.addEventListener(e, (ev) => {
    ev.preventDefault()
    ... 
  })
}) 

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

...