我有一个嵌入在我的网络应用程序中的 Google 幻灯片 iframe。
iframe 的实现是:
<iframe ref={slidesRef} src={src} width='100%' height='100%' allowFullScreen={true}/>
我想听主网页上的点击事件(而 iframe 不一定处于焦点),然后创建它们相应的按键事件 - 并将它们传递给 iframe,从而使幻灯片 iframe 触发并响应用户键按。
我试过这样的事情:
function onButtonClick(e) {
e.stopPropagation();
slidesRef.current.focus();
slidesRef.current.dispatchEvent(new KeyboardEvent('keypress', {
key: 'ArrowRight', which : 39
}));
}
但它不起作用 - 它只关注 iframe,但不发送箭头键事件。
我看到了一些使用 iframe 中的父文档或使用 发送消息的解决方案postMessage
,但我无法在 iframe 中添加任何代码,因为它的来源是外部链接。