单击不同的iframe时隐藏extjs菜单

时间:2014-03-26 20:02:22

标签: javascript iframe extjs extjs3

我有以下问题: 我在一个iframe中有一个extjs菜单,当我在这个iframe外面点击时,菜单不会崩溃,就像我在菜单所属的同一iframe中点击一样。

你们对如何解决这个问题有所了解吗? 这实际上发生在失去焦点时应该隐藏的任何组件。所以,如果你们碰巧知道的话,我很乐意看到一个更通用的解决方案。

谢谢!

P.S。:我正在使用版本3.2

2 个答案:

答案 0 :(得分:0)

虽然我不知道您的父框架是否也在运行ExtJS应用程序,但您可能需要使用XDM(跨域消息传递)。 https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

然后,您需要在父框架上添加一个侦听器,以便在窗口中单击,并将该click事件传递给iframe。然后,iframe会根据需要处理点击,在您的情况下会解雇菜单。

答案 1 :(得分:0)

对于仍在寻找解决方案的人。

你可以解决Extjs菜单并隐藏父框架中的所有打开菜单,如下所示(在父项点击事件中为fe):

var menu = window.frames[0].[ExtApplicationName].app.getController('[CONTROLLER]').getMenu().items.items

接下来,您可以循环浏览菜单项并通过执行以下操作隐藏它们:

menu[i].menu.hide();