2012-06-08 12 views
6

Pracuję nad opartą na płótnie grą i używam window.addEventListener() do dołączania globalnych wydarzeń o numerach keyup i keydown. Działa to przy normalnym oglądaniu strony, ale po umieszczeniu jej jako elementu iframe; nie otrzyma zdarzeń keyup i keydown. Czy istnieje lepszy sposób, żeby to zrobić?catch-all wydarzenia keyup/keydown w iframe?

Odpowiedz

1

Wygląda na to, że można po prostu zrobić var realWindow = window.parent || window; i zamiast tego użyć addEventListener na realWindow.

+1

Działa to tylko wtedy, gdy strona zewnętrzna osadzona w ramce pochodzi z tej samej domeny (strony internetowej). –

1

Nie można, chyba że ramka ma fokus.

Co można zrobić, to keyDown na zewnętrznej okna skupić iframe, czy zawsze jakoś skupić iframe, lub skupić iframe domyślnie (może być na tyle dobra, nie jestem pewien, co robisz)

Ale aby keydown okna strzelał do dowolnego okna (ramki lub nie), ta ramka potrzebuje ostrości.