可以通过使用JavaScript单击链接来模拟按下的键盘快捷键吗?
我正在创建一个“Itunes LP”格式的触摸应用程序,它在Itunes中使用html、css和javascript创建一个“数字LP”。该应用程序将有几个LP可通过触摸屏浏览。 在全屏模式下(在Itunes和LP中),您可以按“esc键”退出LP并进入“coverflow视图”,从中可以选择另一个LP进行浏览。我将没有键盘或鼠标,所以我需要创建一个按钮/链接,当用户点击该链接时,该按钮/链接做一件事,即模拟按下ESC键 所以我的问题是,;可以在链接中使用JavaScript模拟按下键盘快捷键吗?我的链接将是“主页”,单击此链接,浏览器的行为与按下ESC键相同 关于这方面的任何提示都会非常有用。 谢谢 大卫 增加30/6强> (Itunes LP的TuneKit.js的一部分) ****我的脚本将如下所示:****可以通过使用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模拟按下键盘快捷键吗
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;