javascript - iframe如何像flash一样捕捉键盘?

标签 javascript html iframe

我制作了一个由键盘控制的 JS/HTML5 游戏,我喜欢让它像 flash 游戏一样可嵌入,但是当我将它嵌入到 iframe 中时,它只在 iframe 聚焦时捕获键盘事件。如果用户与页面上的其他元素交互,iframe 将失去焦点并且游戏将不会接收事件。

如何让它始终从 iframe 中捕获键盘事件并避免像 flash 游戏这样的默认设置?例如,从 iframe 内部使用空间触发而不是滚动。

为什么要投反对票?

最佳答案

这是一种方法:

function focus()
{
    var iframe = document.getElementById('iframe-element')
    iframe.contentWindow.focus();
}

window.setInterval(focus, 100); 

或 jQuery:

$("body").click(function(){
  $('#iframe-element').focus();
});

这当然需要在主机页面上运行,因为允许嵌入式 iframe 窃取焦点不符合浏览器/网页安全的本质。

祝你好运。

关于javascript - iframe如何像flash一样捕捉键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21472438/

相关文章:

Javascript 抛出事件?

javascript - Node js console.log 没有显示任何内容

jquery - 发票页脚未打印在底部

html - 另一个部分中的部分

css - 为什么包含方向属性的媒体查询在 iframe 中不起作用?

javascript - 如何使 HTML 中的文本响应式?

javascript - D3 鼠标悬停

javascript - 什么时候可以使用Angular onpush通知策略?

html - body.onload 是否等待 IFrame?

Javascript 和同源 iframe