Почему триггер F11 не работает? - PullRequest
10 голосов
/ 21 июня 2011

Я только что прочитал этот вопрос: Полноэкранная страница нажатием кнопки вместо F11
Оператор попросил заменить F11 другими горячими клавишами, поэтому мне интересно, может быть, я смогу имитировать нажатие F11 , чтобы все заработало. Я узнал, что могу использовать триггер в JQuery для имитации события нажатия клавиши, поэтому я делаю что-то вроде этого:

$("body").keyup(function (e) {
    alert(e.which);
});
var e = $.Event("keyup");
e.which = 122; // # Key code of F11
$("body").trigger(e);  

Когда я запускаю это, я получаю предупреждение «122», но кажется, что оно не дает ожидаемого результата. Есть ли ограничение там?

Я сделал скрипку здесь: http://jsfiddle.net/ap295/5/

Ответы [ 4 ]

10 голосов
/ 21 июня 2011

Вы не можете сделать это.Связанный ответ в этом вопросе предоставляет способ с помощью jQuery имитировать нажатия клавиш в структуре событий jQuery.

Вы просто не можете запускать или подделывать нажатия клавиш.Таким образом, ответ на этот вопрос:

Нет, это невозможно

10 голосов
/ 21 июня 2011

Я думаю, что это один :), чтобы обнаружить его ...

$(document).keyup(function(e){
   if(e.which==122){
       e.preventDefault();//kill anything that browser may have assigned to it by default
       //do what ever you wish here :) 
       alert('F11 pressed');
       return false;
   }
});

, но вызвать его ( НЕ ВОЗМОЖНО )

Но вы не помешаетебраузер из полноэкранного режима :) ... Резон с учетом того, что, допустим, я каким-то образом полностью его экранировал, и хочу отключить его, используя F11 , но вы мешаете мне, мне придется перезапуститьПК, [компьютерный неграмотный], который представляет угрозу безопасности, поскольку вы не позволяете пользователю делать то, что он ожидает, и они могут подумать, что ПК сломан или что-то :) так что ... вот вам.

3 голосов
/ 21 июня 2011

Вы не сможете переопределить встроенные горячие клавиши браузера с веб-страницы.

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

В любом случае, зачем вам вообще отменять стандартные сочетания клавиш?Я не понимаю этого.Они были стандартными в течение долгого времени;большинство пользователей будут знакомы с ними, и им будет очень странно, если они были заменены на что-то другое.

1 голос
/ 22 июня 2011

Не смотрите на вопрос "Как мне вызвать F11?"- посмотрите как «Как запустить или симулировать полноэкранный режим?»

В более старых версиях IE вы можете открыть новое окно прямо в полноэкранном режиме:

window.open(someURLorOther, '', 'fullscreen=yes, scrollbars=auto');

илиВы можете использовать window.open, чтобы открыть новое окно определенного размера.

Или вы можете попытаться изменить размер текущего окна, чтобы заполнить экран:

moveTo(0,0);
resizeTo(screen.availWidth,screen.availHeight);

Однако простопотому что вы можете не означает, что вы должны . Вы должны никогда изменить размер текущего окна - это раздражает практически всех.Открытие нового окна с выбранным вами размером более разумно, хотя, если оно слишком большое, оно может раздражать, и на обычной веб-странице (где под «обычным» я, вероятно, имею в виду не какое-то браузерное приложение для ввода данных)лучше не открывать новые окна.

...