javascript - Node Webkit - 从 iframe 到应用程序的触发事件

标签 javascript events iframe browser node-webkit

我正在尝试使用nodewebkit制作一个迷你信息亭浏览器(全屏,最小选项等)。 信息亭浏览器的结构如下:

<!DOCTYPE html>
<head>
    ...
</head>
<body>
    <!-- placeholder until iframe is loaded -->
    <div class="placeholder">
        <div class="loading">Loading</div>
    </div>
    <iframe id="iframe" src="" nwfaketop nwdisable></iframe>

    <script type="text/javascript">
        // Basic features of the kiosk browser
        document.onkeydown = function(evt) {
            //Toggle FullScreen on F1 or F11
            if (evt.keyCode == 112 || evt.keyCode == 122) {
                win.toggleKioskMode();
            }
            ...
        }
        ...
        loadIframe();
        ...
    </script>
</body>

问题是,一旦 iframe 加载并显示(100% 宽度和高度),事件就会在此 iframe 中触发,而不是在我的应用程序中触发。

我已经使用 documentation 尝试了几件事但我真的不明白如何让事情按照我想要的方式进行。

所以任何帮助都会很棒!谢谢。

最佳答案

一旦 iframe 加载,您就可以在 iframe 的内容窗口中注册事件处理程序。

var iframe = document.getElementById("iframe");
iframe.onload = function(){
   iframe.contentWindow.addEventListener('keydown',yourHandler);
}

关于javascript - Node Webkit - 从 iframe 到应用程序的触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28874079/

相关文章:

Javascript 倒计时从上午 8 点到晚上 9 点

需要 Javascript 帮助 - 哪个变量返回空?

delphi - 调整表单大小,同时保持纵横比

html - 加载内容一直滚动到底部

javascript - 静音 iframe 中播放的音乐?

javascript - 通过 div 触发 iframe youtube 视频

javascript - AngularJs ng-controller 覆盖

javascript - 为什么我无法将毫秒从 C# 转换为 JavaScript 日期对象?

javascript - 有没有更好的方法来处理相同的回调函数但不同的输入参数?

apache-flex - 关于实体之间灵活游戏通信的建议