2014-03-26 22 views
0

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

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

谢谢!

P.S:我使用的是3.2版

回答

0

虽然我不知道你的父框架还运行ExtJS的应用程序,你可能会需要利用XDM(跨域通讯)做的。 https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

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

+0

不幸的是,这并不适合我。该解决方案需要兼容多种IE版本。 – BMF

+0

你是否支持过去的IE8? (IE6/IE7等) – Kuma

+0

您可以查看easyXDM,它为您处理了许多这些浏览器兼容性问题:http://easyxdm.net/。 – Kuma

0

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

可以解决ExtJS的菜单和隐藏这样父框架所有打开的菜单(FE父点击事件中):

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

接下来,你可以通过菜单项环和隐藏他们在做:

menu[i].menu.hide();