catch-all keyup/keydown events in iframe?

2019-04-24 18:41发布

问题:

I'm working on a canvas-based game and am using window.addEventListener() to attach keyup and keydown events globally. This works in when viewing the page normally, but when embedding it as an iframe; it doesn't get the keyup and keydown events. Is there a better way I can do this?

回答1:

You can't, not unless the frame has focus.

What you can do is make a keydown on the outer window focus the iframe, or always somehow focus the iframe, or focus the iframe by default (might be good enough, not sure what you're doing)

But for the window keydown to fire on any window (frame or not) that frame needs focus.



回答2:

It seems you can just do var realWindow = window.parent || window; and use addEventListener on realWindow instead.