На этой веб-странице есть простой прослушиватель событий, когда я нажимаю правой кнопкой мыши, он блокирует открытие контекстного меню. достаточно просто.Первый щелчок игнорируется после загрузки страницы
Но когда я обновляю страницу или при начальной загрузке страницы, если я начинаю с правой щелчком мыши по странице, она отображает контекстное меню, а затем блокирует ее, когда я нажимаю правой кнопкой мыши после этого. Я попробовал его в Chrome, FireFox и IE. Те же результаты.
Я испытываю то же самое с помощью мыши, нажатия клавиш или касания, и т. Д. Это похоже на первый щелчок игнорируется. Я ищу решение JavaScript (не jquery). Что мне не хватает?
<html>
<head>
<title>test</title>
<script type="text/javascript">
window.onload = function() {
window.addEventListener("contextmenu", mouseright);
}
function mouseright() {
document.oncontextmenu = function(e) {
var e = e || window.event;
alert("right");
e.preventDefault();
}
}
</script>
</head>
<body>
hello world
</body>
</html>
Я даже попытался добавить это до слушателя событий (как в этом посте keydown not detected until window is clicked), не везло с document.onload
и не видеть, что это может быть возможным фокус браузера на настройки загрузки страницы. Любые мысли или другие идеи, которые я не пробовал в JavaScript?
if (document.hasFocus() == true) {
} else {
window.focus();
}
удалить window.onload. mouseright set upper than eventListener. – KoIIIeY
ваш первый щелчок стреляет перед загрузкой страницы, я думаю, поэтому вам не стоит ждать, пока страница загружена. – KoIIIeY
'mouseright()' вызывается при первом щелчке, но событие 'contextmenu' уже запущено (это как' mouseright() 'был вызван). Перезапись 'oncontextmenu' не изменит выполнение * current *, но изменит выполнение * next *. –