可以通过使用JavaScript单击链接来模拟按下的键盘快捷键吗?

可以通过使用JavaScript单击链接来模拟按下的键盘快捷键吗?,javascript,keyboard-shortcuts,hyperlink,itunes,touchscreen,Javascript,Keyboard Shortcuts,Hyperlink,Itunes,Touchscreen,我正在创建一个“Itunes LP”格式的触摸应用程序,它在Itunes中使用html、css和javascript创建一个“数字LP”。该应用程序将有几个LP可通过触摸屏浏览。 在全屏模式下(在Itunes和LP中),您可以按“esc键”退出LP并进入“coverflow视图”,从中可以选择另一个LP进行浏览。我将没有键盘或鼠标,所以我需要创建一个按钮/链接,当用户点击该链接时,该按钮/链接做一件事,即模拟按下ESC键 所以我的问题是,;可以在链接中使用JavaScript模拟按下键盘快捷键吗

我正在创建一个“Itunes LP”格式的触摸应用程序,它在Itunes中使用html、css和javascript创建一个“数字LP”。该应用程序将有几个LP可通过触摸屏浏览。 在全屏模式下(在Itunes和LP中),您可以按“esc键”退出LP并进入“coverflow视图”,从中可以选择另一个LP进行浏览。我将没有键盘或鼠标,所以我需要创建一个按钮/链接,当用户点击该链接时,该按钮/链接做一件事,即模拟按下ESC键

所以我的问题是,;可以在链接中使用JavaScript模拟按下键盘快捷键吗?我的链接将是“主页”,单击此链接,浏览器的行为与按下ESC键相同

关于这方面的任何提示都会非常有用。 谢谢

大卫

增加30/6

(Itunes LP的TuneKit.js的一部分)

****我的脚本将如下所示:****

    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键

这个答案假设iTunes LP应用程序使用JS函数退出全屏

虽然您可能可以,但不必模拟事件。您正在处理的关键事件由事件侦听器或事件处理程序绑定到函数(在本例中,是退出全屏模式的函数)。您应该能够创建一个按钮,并将其(通过类似的事件侦听器或事件处理程序)绑定到同一个函数

您不能直接绑定它,因为按键事件传递关于按下哪个键的信息,而鼠标事件不传递,所以您需要通过代理发送它。您的代码可能看起来像这样。在这种情况下,接收iTunes LP库中的按键事件的代码称为iTunesLPKeyPressEvent。我不知道它到底叫什么

var escapeKeyProxy = function() {
    iTunesLPKeyPressEvent({'keyCode':27});
} 
document.getElementById('btnExitFullScreen').onclick = escapeKeyProxy;
你可能需要稍微按摩一下,但基本的想法应该行得通

[编辑] 根据你的最新消息,我会这么说
TKSpatialNavigationManager.prototype.\u managedController
是您需要使用的对象,很可能是
TKSpatialNavigationManager.prototype.\u managedController.keyWasPressed(key)
是捕获转义键的代码。查看
addEventListener(“keypress”,SOME\u METHOD,true)
(或
keyup
keydown
)的代码,处理事件的将是
SOME\u方法。这就是你想要劫持的方法。希望它将在您可以轻松访问的范围内。

谢谢!见我的编辑上面。我知道这是不对的,但我尝试了很多,不是很有经验的JS,但这是在项目中的最后一件事,然后它做了,所以这将是一个糟糕的开始所有。。。有没有关于如何编写home.js文件以使其正常工作的建议?非常感谢/大卫已经根据你的密码更新了我的答案。如果您仍有问题,能否提供创建
TKSpatialNavigationManager
实例的行以及包含
onkeypress
addEventListener(“onkeypress”)
的任何行?
var escapeKeyProxy = function() {
    iTunesLPKeyPressEvent({'keyCode':27});
} 
document.getElementById('btnExitFullScreen').onclick = escapeKeyProxy;