我正在做SWF应用程序,它将在浏览器中运行。
我希望在Flex应用程序处于焦点时捕获CTRL+F
按键事件。
在Firefox中,它可以正常工作,但在Opera和Safari浏览器中,可以在Flex应用程序和“查找对话框”弹出窗口之前捕获事件。
Flex应用程序有没有办法在浏览器之前捕获CTRL+F
事件?
答案 0 :(得分:2)
我问了这个same question recently并一直在玩它。
我在github上提出了这个要点:
Browser KeyboardEvent Hijacking with Javascript and Flex
CTRL-F有效!
查看那里的javascript。基本上,使用Safari,你只能听到元键(ctrl / alt / shift等);如果Flash由于某种原因运行,它将不允许javascript听到A-Z事件。所以我只是在javascript中监听元键,然后在javascript中调用window.focus()
。这将焦点放在浏览器上,使其可以劫持浏览器键盘事件!然后我会听A-Z事件或其他什么,并将它们传递给Flex。
下一步是将Flex应用程序中的焦点恢复到之前的任何位置,这应该很容易。
干杯, 兰斯
答案 1 :(得分:0)
也许将javascript添加到包含将阻止它的swf的html中。听起来这些浏览器以不同的顺序处理事件,所以我怀疑你可以在flash播放器中做任何事情。
答案 2 :(得分:0)
其中e是键盘事件:
if(e.commandKey || e.ctrlKey){
switch(e.keyCode){
case Keyboard.N:
// do stuff
break;
}
}