Обнаружить щелчок в iframe (React. js) - PullRequest
0 голосов
/ 09 апреля 2020

Я буквально принесу Venmo 10 $ первому человеку, который может дать мне что-то, что работает. Пожалуйста помоги.

У меня есть iframe, и я хочу запретить людям загружать содержимое. Я уже использовал # toolbar = 0, но пользователь все еще может щелкнуть правой кнопкой мыши, чтобы загрузить. Я знаю, что невозможно полностью предотвратить загрузку, но я просто ищу решение, чтобы предотвратить легкие загрузки для пользователя basi c.

Я попытался наложить iframe на прозрачное изображение, чтобы заблокировать правую -нажмите, но это делает невозможным прокрутку документа.

Цель прямо сейчас : обнаружение щелчка правой кнопкой мыши в фрейме и отключите контекстное меню.

Код, который у меня есть прямо сейчас:

componentDidMount(){
 document.getElementById('myIframe').addEventListener("click",this.handleClick);
}
componentWillUnmount(){
 document.getElementById("myIframe").removeEventListener("click", this.handleClick);
}

render(){
  return(
     <div className="PDFs">
       <iframe id="myIframe" src={PDF + "#toolbar=0"} width="100%" height="800px" className="Viewer"/> 
     </div>
  );
}

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

Если вы можете найти какой-либо способ предотвратить загрузку PDF без преобразования PDF во что-либо и без блокировки прокрутки доступа к PDF, я возьму это.

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

Я также уже пытался использовать «onClickDown» и «onContextMenu», и ни один из них не работал, если я не использовал его неправильно.

1 Ответ

0 голосов
/ 09 апреля 2020
document.getElementById('myIframe').contentDocument.addEventListener('contextmenu', event => event.preventDefault());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...