从父窗口将事件传递给iframe?(Javascript)

Moh*_*oha 8 javascript iframe eventhandler

在开始这个问题之前,我不得不说我到处寻找答案,但没有找到答案.还试过像dispatchevent,postmessage,......但没有任何效果.

情况就是这样.

我有一个主窗口,我有4个简单的按钮,如downarrow,uparrow,左右箭头.我想创建一个事件模拟传递给这个主窗口中的iframe.

因为iframe是一个加载的页面,其中是一个Eventhandler并对箭头作出反应.

我试过以下但没有奏效

var event = document.createEvent('KeyboardEvent'); // create a key event define the event
event.initKeyboardEvent("keypress",       // typeArg,                                                           
true,             // canBubbleArg,                                                        
true,             // cancelableArg,                                                       
null,             // viewArg,  Specifies UIEvent.view. This value may be null.     
false,            // ctrlKeyArg,                                                               
false,            // altKeyArg,                                                        
false,            // shiftKeyArg,                                                      
false,            // metaKeyArg,                                                       
39,               // keyCodeArg (39 is the right arrow key ),                                                      
0);              // charCodeArg);

document.getElementById('vid').dispatchEvent(event);        
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何解决这个问题?

Ees*_*esa 5

使用postMessage。它工作完美。

document.getElementById('vid').contentWindow.postMessage(event);
Run Code Online (Sandbox Code Playgroud)


Moh*_*oha 0

最后我已经解决了这个问题。我在 iframe 上使用parent.document 来捕获来自 parnet 端的事件,并在 iframe 上再次创建它们,效果非常好!

  • 嗯...所以,如果您可以包含一些代码,那就太好了。没有它就没有太多答案。钱,嘴。请。 (3认同)