Javascript 单击添加到父iframe(主体)的事件,该事件不在子iframe(主体)中工作
我有一个要求,我需要检测网页的不活动,如果用户不活动超过15分钟,那么用户应该注销。为此,我试图通过将点击/按键事件附加到整个页面以及主iframe来检测用户的不活动 这里的问题是我能够在主页(主iframe)上检测到按键/点击事件,但无论在哪里显示对话框(另一个iframe),我都无法检测到该事件。即使这个事件被添加到主iframe的主体以及整个网页中,我还是无法检测到同样的情况。请帮助 我使用的是OpenText Cordys框架XFORMs/JavaScriptJavascript 单击添加到父iframe(主体)的事件,该事件不在子iframe(主体)中工作,javascript,html,iframe,cordys-opentext,Javascript,Html,Iframe,Cordys Opentext,我有一个要求,我需要检测网页的不活动,如果用户不活动超过15分钟,那么用户应该注销。为此,我试图通过将点击/按键事件附加到整个页面以及主iframe来检测用户的不活动 这里的问题是我能够在主页(主iframe)上检测到按键/点击事件,但无论在哪里显示对话框(另一个iframe),我都无法检测到该事件。即使这个事件被添加到主iframe的主体以及整个网页中,我还是无法检测到同样的情况。请帮助 我使用的是OpenText Cordys框架XFORMs/JavaScript 目前没有jquery,但如
目前没有jquery,但如果需要,我可以使用。如果我了解您的问题,它与事件传播有关。不过我承认我对iframe不太熟悉。请看另一篇文章。
除了你的问题之外,理想情况下你应该通过会话来处理这个问题。15分钟后会话过期。如果用户未经授权,也就是未登录,请将其发送到主页。如果您的文件位于同一服务器上,您可以从子iframe-like调用父窗口的函数 parent.html
<script>
window.whichKey = function(keycode) {
console.log("I'm called from child frame, you pressed " + keycode);
}
</script>
system.windows将返回已打开应用程序的窗口对象。您可以将事件处理程序附加到所有窗口并执行此操作 这将需要在我试图避免的所有子页面中进行更改,因为我已经将事件添加到主iframe中,应该在所有子iframe中调用该事件(显然,该子iframe具有不同的id)。第二,大约有70-80个子页面将从仪表板(主登录页)调用。请分享主iframe的代码,以及您在child frame@R23中调用它的位置。这是一个产品OpenText Cordys,它将使用自己的API在内部调用iframe,它只不过是HTML,但没有这样直接的方法。这就是如何调用子ifram::application.select(childBackgroundInfo.XMLDocument.documentElement.cloneNode(true),evtObj);application.showDialog(MyCases.documentElement,data,null,closeHandler,false);这两个API用于打开不同iframe中的子页面。但是为什么我的主iframe事件不能在子iframe中工作呢?有什么意见吗?从上面的代码看不出多少。可能他们对孩子身上的任何东西都不感兴趣。这是肯定的,您必须自己绑定它们,即使父级中存在代码,浏览器也不会将其传递给子级本身@R23但在这种情况下,会话将在每15分钟后过期,即使用户正在做什么或没有做什么。如果用户在页面上处于活动状态且计时器为15分钟,则系统也会将其注销并重定向到登录页面,这在此处是不可取的…请帮助这不是真的。如果他们没有向服务器发出任何请求,它将在15分钟后过期。否则,会话超时将刷新。这当然取决于框架。
<script>
window.onkeypress = function(event) {
window.parent.window.whichKey(event.keyCode);
}
</script>
$("#child-frame").bind("load", function(){
$(this).contents().find("body").on('keypress', function(e) {
console.log(e.keyCode);
});
});