Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击添加到父iframe(主体)的事件,该事件不在子iframe(主体)中工作_Javascript_Html_Iframe_Cordys Opentext - Fatal编程技术网

Javascript 单击添加到父iframe(主体)的事件,该事件不在子iframe(主体)中工作

Javascript 单击添加到父iframe(主体)的事件,该事件不在子iframe(主体)中工作,javascript,html,iframe,cordys-opentext,Javascript,Html,Iframe,Cordys Opentext,我有一个要求,我需要检测网页的不活动,如果用户不活动超过15分钟,那么用户应该注销。为此,我试图通过将点击/按键事件附加到整个页面以及主iframe来检测用户的不活动 这里的问题是我能够在主页(主iframe)上检测到按键/点击事件,但无论在哪里显示对话框(另一个iframe),我都无法检测到该事件。即使这个事件被添加到主iframe的主体以及整个网页中,我还是无法检测到同样的情况。请帮助 我使用的是OpenText Cordys框架XFORMs/JavaScript 目前没有jquery,但如

我有一个要求,我需要检测网页的不活动,如果用户不活动超过15分钟,那么用户应该注销。为此,我试图通过将点击/按键事件附加到整个页面以及主iframe来检测用户的不活动

这里的问题是我能够在主页(主iframe)上检测到按键/点击事件,但无论在哪里显示对话框(另一个iframe),我都无法检测到该事件。即使这个事件被添加到主iframe的主体以及整个网页中,我还是无法检测到同样的情况。请帮助

我使用的是OpenText Cordys框架XFORMs/JavaScript


目前没有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);
    });
});