Node Webkit - 从 iframe 到应用程序的触发事件
Node Webkit - Fire Event from iframe to the app
我正在尝试使用 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 和你之间启用一些通信 window 那么你可以使用 prothole 。请注意,您可能需要访问为 iframe too.Hope 提供帮助的其他域。
我终于找到了一种使用 document-end
侦听器的方法,该侦听器在 window 或加载子 iframe 时触发(就在 onload 事件之前)。
win.on('document-end', function(frame) {
if(frame != null){ // If frame is not the window but an Iframe
frame.contentDocument.body.addEventListener('keydown', yourScript);
}
});
也许不是正确的方法,但它有效。
您可以在 iframe 加载后立即在 iframe 的内容 window 中注册您的事件处理程序。
var iframe = document.getElementById("iframe");
iframe.onload = function(){
iframe.contentWindow.addEventListener('keydown',yourHandler);
}
我正在尝试使用 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 和你之间启用一些通信 window 那么你可以使用 prothole 。请注意,您可能需要访问为 iframe too.Hope 提供帮助的其他域。
我终于找到了一种使用 document-end
侦听器的方法,该侦听器在 window 或加载子 iframe 时触发(就在 onload 事件之前)。
win.on('document-end', function(frame) {
if(frame != null){ // If frame is not the window but an Iframe
frame.contentDocument.body.addEventListener('keydown', yourScript);
}
});
也许不是正确的方法,但它有效。
您可以在 iframe 加载后立即在 iframe 的内容 window 中注册您的事件处理程序。
var iframe = document.getElementById("iframe");
iframe.onload = function(){
iframe.contentWindow.addEventListener('keydown',yourHandler);
}