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)
有没有人知道如何解决这个问题?
使用postMessage。它工作完美。
document.getElementById('vid').contentWindow.postMessage(event);
Run Code Online (Sandbox Code Playgroud)
最后我已经解决了这个问题。我在 iframe 上使用parent.document 来捕获来自 parnet 端的事件,并在 iframe 上再次创建它们,效果非常好!