Onclick элемент имитирует клавишу Esc
У меня следующая ситуация:
Когда пользователь нажимает на ссылку, через Javascript должен быть включен ключ Esc. Поэтому, чтобы объяснить это лучше, у меня есть следующий код:
1. Я создал функцию:
//my function
function invokeEscKey() {
var ev = document.createEvent('KeyboardEvent');
ev.initKeyEvent(
'keydown', true, true, window, false, false, false, false, 27, 0);
document.body.dispatchEvent(ev);
}
также попробовал это с jQuery:
//my function
function invokeEscKey() {
jQuery.event.trigger({
type : 'keypress',
which : 27
});
}
2. И когда пользователь нажимает на ссылку, должна вызываться функция:
$(function() {
$('a.close').click(function() {
//call this function to simulate ESC key press
invokeEscKey();
});
});
Но это не работает вообще. Мой вопрос, каков наилучший способ решить эту проблему?
Примечание. Я спрашиваю об этом потому, что у меня есть всплывающее окно с активированной клавишей F11 (полноэкранный режим). Когда пользователь нажимает кнопку закрытия, F11 должен быть отменен, что обычно делается нажатием клавиши ESC. И я хочу, чтобы это было сделано автоматически.
1 ответ
JavaScript не может инициировать события уровня ОС из окна браузера, за исключением случаев, когда он изначально поддерживается браузером через специальные функции или API. Вы не можете отправить событие клавиатуры системного уровня с ESC
ключ, чтобы закрыть полноэкранный режим, или, скажем, запустить справку системы с F1
,
Вместо этого вы можете использовать полноэкранный API, который поддерживается основными браузерами:
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}