我制作了一个由键盘控制的 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/