Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перехватить событие нажатия Esc (https://javascript.ru/forum/misc/47578-perekhvatit-sobytie-nazhatiya-esc.html)

kotoskos 29.05.2014 12:34

Перехватить событие нажатия Esc
 
Как перехватить Esc при выходе из полного экрана браузера?

window.addEventListener("keydown", function(e){
		if (e.keyCode == 27) {
			console.log("A");
		}
	}, true);


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

kotoskos 29.05.2014 12:39

Вообще конечно, мне на самом деле флаг поправить в js, что был полный экран, стал обычным. Как узнать, что какое событие произошло, и флаг поправить?

melky 29.05.2014 12:55

событие fullscreenchange, его свойство fullscreenEnabled

kotoskos 29.05.2014 15:01

Что не могу ловить момент выхода через Esc.
При увеличение на полный экран, fullscreenElement содержить весь код элемента bbb, зачем он нужен, не понятно, а то что нужно, fullscreenEnabled всегда undefined


var element = document.getElementById('bbb');

function fullScreenClick(){
		if(!fullscreen){
			element.requestFullscreen();
			fullscreen = true;
		}else{
			document.cancelFullScreen();
			fullscreen = false;
		}
	}
	
window.addEventListener("mozfullscreenchange", onfullscreenchange);

var onfullscreenchange =  function(e){
	  var fullscreenElement = 
	    document.mozFullscreenElement;
	  var fullscreenEnabled = 
	    element.mozFullscreenEnabled;
	  console.log( 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA fullscreenEnabled = ' + fullscreenEnabled, ',  fullscreenElement = ', fullscreenElement, ',  e = ', e);
	}


Мне вообщем что бы флаг fullscreen был правильный всегда

jsnb 29.05.2014 15:36

Ну на MDN же всё написано: https://developer.mozilla.org/en-US/...ll_screen_mode
Там же есть готовый кроссбраузерный код - бери не хочу.

Цитата:

Сообщение от kotoskos (Сообщение 313971)
window.addEventListener("mozfullscreenchange", onfullscreenchange);

var onfullscreenchange =  function(e){
	  var fullscreenElement = 
	    document.mozFullscreenElement;
	  var fullscreenEnabled = 
	    element.mozFullscreenEnabled || 
	  console.log( 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA fullscreenEnabled = ' + fullscreenEnabled, ',  fullscreenElement = ', fullscreenElement, ',  e = ', e);
	}

И какой смысл назначать обработчик, которого не существует на момент вызова addEventListener?

kotoskos 29.05.2014 16:45

Я по выше приведенной ссылке не увидел, как можно при выходе через Esc можно поменять флаг. Обработчик поставил только для того что смотреть console.log. Хочу что fullscreenEnabled показывал статус правильно, а не всегда true. По разному тасовал между собой и element, document, window. Работающую комбинацию не могу найти...

kotoskos 29.05.2014 17:25

Заработала, спасибо всем


Часовой пояс GMT +3, время: 07:42.