Я создаю сенсорное приложение в формате «Itunes LP», которое использует html, css и javascript в Itunes для создания «цифрового LP».Приложение будет иметь несколько пластинок для сенсорного экрана.В полноэкранном режиме (в Itunes и LP) вы можете нажать «клавишу esc», чтобы выйти из LP и войти в «представление прикрытия», где вы можете выбрать другой LP для исследования.У меня не будет клавиатуры или мыши, поэтому мне нужно создать кнопку / ссылку, которая будет выполнять одно действие, когда пользователь нажимает на эту ссылку, - симулировать нажатие клавиши ESC.
Итак, мой вопрос:Можно ли имитировать нажатие сочетания клавиш с помощью JavaScript в ссылке?Моя ссылка будет «Домой», и, нажав на эту ссылку, браузер будет вести себя, как нажата клавиша ESC.
Любые советы по этому вопросу будут наиболее полезными.Спасибо!
Дэвид
ДОБАВЛЕНО 30/6;
(часть TuneKit.js для Itunes LP)
/* ==================== Keyboard Navigation ==================== */
TKSpatialNavigationManager.prototype.handleKeydown = function (event) {
var key = event.keyCode;
// check if our controller knows what it's doing and let it take over in case it does
if (this._managedController.wantsToHandleKey(key)) {
// prevent default actions
event.stopPropagation();
event.preventDefault();
// have the controller do what it think is best in this case
this._managedController.keyWasPressed(key);
return;
}
// reset the sound
TKSpatialNavigationManager.soundToPlay = null;
// check we know about this key, otherwise, do nothing
if (TKSpatialNavigationManagerKnownKeys.indexOf(key) == -1) {
return;
}
var navigation = TKNavigationController.sharedNavigation;
// first, check if we're hitting the back button on the home screen, in which case
// we don't want to do anything and let the User Agent do what's right to exit
if (event.keyCode == KEYBOARD_BACKSPACE && navigation.topController === homeController) {
return;
}
// before we go any further, prevent the default action from happening
event.stopPropagation();
event.preventDefault();
// check if we're busy doing other things
if (TKSpatialNavigationManager.busyControllers > 0) {
return;
}
// see if we pressed esc. so we can pop to previous controller
if (event.keyCode == KEYBOARD_BACKSPACE) {
var top_controller = navigation.topController;
if (top_controller !== homeController) {
// at any rate, play the exit sound
TKUtils.playSound(SOUND_EXIT);
// see if the top controller has a custom place to navigate to with the back button
if (top_controller.backButton instanceof Element && top_controller.backButton._navigationData !== undefined) {
navigation.pushController(TKController.resolveController(top_controller.backButton._navigationData.controller));
}
// otherwise, just pop the controller
else {
navigation.popController();
}
}
}
**** Мой сценарий будет выглядеть следующим образом: ****
var albumHelper = {};
albumHelper.playAlbum = function() {
var playlist = bookletController.buildPlaylist(appData.songs);
playlist.play();
};
var event = {};
event.keyCode = function() {
var escapeKeyProxy = TKSpatialNavigationManager.prototype.handleKeydown({'keyCode':27});
document.getElementById('btnExitFullScreen').onclick = escapeKeyProxy;
};
var homeController = new TKController({
id: 'home',
actions : [
{ selector: '.menu > .play', action: albumHelper.playAlbum },
{ selector: '.menu > .linernotes', action: event.keyCode }
],
navigatesTo : [
{ selector: '.menu > .songs', controller: 'songs' },
{ selector: '.menu > .photos', controller: 'photos' },
{ selector: '.menu > .videos', controller: 'videos' },
{ selector: '.menu > .credits', controller: 'credits' }
],
// make the PLAY button be default highlight
highlightedElement : '.menu > .play'
});
Итак, мне нужно изображение .linernotes, при щелчке имитировать нажатие клавиши ESC!