Javascript全局键盘处理,不听到A-Z键?
我正在尝试使用Javascript截取键盘事件,这样我就可以在Flash应用程序中对“关闭窗口”之类的内容执行CMD-W,这样浏览器就不会使用它们了 嗯,我能够监听ALT、CTRL和CMD onKeyDown/onKeyPress事件,但我不能监听其他任何内容。。。以下是Flex项目index.html文件中的代码:Javascript全局键盘处理,不听到A-Z键?,javascript,apache-flex,externalinterface,Javascript,Apache Flex,Externalinterface,我正在尝试使用Javascript截取键盘事件,这样我就可以在Flash应用程序中对“关闭窗口”之类的内容执行CMD-W,这样浏览器就不会使用它们了 嗯,我能够监听ALT、CTRL和CMD onKeyDown/onKeyPress事件,但我不能监听其他任何内容。。。以下是Flex项目index.html文件中的代码: document.onkeydown=函数(事件){applicationKeyboardHandler(事件)} document.onkeypress=函数(事件){app
document.onkeydown=函数(事件){applicationKeyboardHandler(事件)}
document.onkeypress=函数(事件){applicationKeyboardHandler(事件)}
函数applicationKeyboardHandler(事件){
警报(“按键”)
}
我想让它可以听任何按键,而不仅仅是alt/ctrl/cmd。我遗漏了什么?我想Flash电影正在处理关键事件,并阻止它们在文档树上传播。为什么不处理Flash本身中的事件呢?我想Flash电影正在处理关键事件,并阻止它们向文档树上传播。为什么不处理Flash本身中的事件?您确定Flash没有阻止它吗?您是否尝试在没有Flash的页面上运行代码
您应该尝试将事件附加到窗口而不是文档您确定Flash没有阻止它吗?您是否尝试在没有Flash的页面上运行代码
您应该尝试将事件附加到窗口,而不是像Tim那样记录,我想Flash/Flex正在吞噬关键事件。由于Alt等是元键,所以它们不会在Flex中触发keypress事件,而是传递给JS。另一方面,某些手势(例如某些浏览器上的Ctrl+A)被Flash阻止接收。我想,出于同样的原因(安全性),JS也无法处理这些问题。受保护的按键手势高度依赖于浏览器
可能浏览器不允许您处理CTRL-Q,这样用户就可以随时关闭浏览器,即使打开了一些恶意网站。像Tim一样,我猜Flash/Flex正在吞噬关键事件。由于Alt等是元键,所以它们不会在Flex中触发keypress事件,而是传递给JS。另一方面,某些手势(例如某些浏览器上的Ctrl+A)被Flash阻止接收。我想,出于同样的原因(安全性),JS也无法处理这些问题。受保护的按键手势高度依赖于浏览器
浏览器可能不允许您处理CTRL-Q,这样用户就可以随时关闭浏览器,即使打开了一些恶意网站。我尝试了“窗口”和“文档”,它们的工作原理相同。更复杂的是,它只在Safari上运行,Firefox没有注册任何东西。flash怎么会阻止它呢?有没有办法解决这个问题?您是否创建了一个只包含事件处理的页面,而不包含其他内容?让它在页面上没有任何内容的情况下工作,并一次添加一个内容,直到它崩溃。我尝试了“窗口”和“文档”,它们都工作相同。更复杂的是,它只在Safari上运行,Firefox没有注册任何东西。flash怎么会阻止它呢?有没有办法解决这个问题?您是否创建了一个只包含事件处理的页面,而不包含其他内容?让它在页面上没有任何内容的情况下工作,并一次添加一个内容,直到它崩溃。我无法在Flash中执行诸如CMD-Q/CTRL-Q之类的操作,它将关闭浏览器:/。我可以听到所有的键盘事件闪烁,但在文档中听不到。。。。还有其他想法吗?我不能在Flash中执行诸如CMD-Q/CTRL-Q之类的操作,它将关闭浏览器:/。我可以听到所有的键盘事件闪烁,但在文档中听不到。。。。还有其他想法吗?
<script language="JavaScript" type="text/javascript">
document.onkeydown = function(event) {applicationKeyboardHandler(event)}
document.onkeypress = function(event) {applicationKeyboardHandler(event)}
function applicationKeyboardHandler(event) {
alert("Key Pressed")
}
</script>