Отключение контекстного меню правой кнопкой мыши с триггером, чтобы включить его обратно - PullRequest
0 голосов
/ 22 мая 2019

Я хочу иметь возможность отключить меню правого клика на моем веб-сайте, которое я делаю со следующим:

document.addEventListener("contextmenu", function(e){e.preventDefault(); }, false);

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

function() {
  $('body').unbind();
}

Спасибо, код ниже прекрасно работает:

HTML

<div class="listener">
    <button onclick="stopjs()" id="stop">Stop</button>
</div>

Код JavaScript

function prevent(e) {
    console.log('preventing');
    e.preventDefault();
}

document.addEventListener("contextmenu", prevent);

function stopjs() {
    document.removeEventListener("contextmenu", prevent);
}

1 Ответ

2 голосов
/ 22 мая 2019

Вам нужно сохранить ссылку на функцию, которую вы передаете в addEventListener, а затем вы сможете удалить ее позже:

function prevent(e) {
  console.log('preventing');
  e.preventDefault();
}
document.addEventListener("contextmenu", prevent);

setTimeout(() => {
  document.removeEventListener("contextmenu", prevent);
}, 3000);
...