Menu 当容器的宽度和高度均为100%时,EnhancedGrid上的菜单行为怪异

Menu 当容器的宽度和高度均为100%时,EnhancedGrid上的菜单行为怪异,menu,dojo,grid,Menu,Dojo,Grid,我花了一些时间简化代码,以获得一个简单的问题示例。我正在使用Dojo1.6.1。我在页面上定义了一个TabContainer。实际上,我添加了两个选项卡,每个选项卡都包含一个带有行菜单的增强网格(右键单击)。问题在于,如果将TabContainer定义为使用页面上的所有可用空间,则菜单在IE8上无法正常工作。如果我使用特定的高度和宽度,它可以正常工作。我的意思是:菜单很简单;它只有两个菜单项,其中一个是显示子菜单的弹出菜单,如下所示: 如果TabContainer获取了所有可用的宽度和高度,那

我花了一些时间简化代码,以获得一个简单的问题示例。我正在使用Dojo1.6.1。我在页面上定义了一个TabContainer。实际上,我添加了两个选项卡,每个选项卡都包含一个带有行菜单的增强网格(右键单击)。问题在于,如果将TabContainer定义为使用页面上的所有可用空间,则菜单在IE8上无法正常工作。如果我使用特定的高度和宽度,它可以正常工作。我的意思是:菜单很简单;它只有两个菜单项,其中一个是显示子菜单的弹出菜单,如下所示:

如果TabContainer获取了所有可用的宽度和高度,那么菜单会做一些非常奇怪的事情。首先,如果在一行上单击鼠标右键,则该行不会执行任何操作。您需要再次右键单击。然后菜单显示,但当您打开子菜单时,主菜单将消失,子菜单不工作。它会一直浮动,直到您导航到其他页面:

当它失败时,它会在dojox/grid/_FocusManager.js的第208行抛出一个javascript错误,称“undefined”为null或不是对象

[...]
    _scrollHeader: function(currentIdx){
        var info = null;
        if(this._colHeadNode){
            var cell = this.grid.getCell(currentIdx);
            info = this._scrollInfo(cell, cell.getNode(0));
        }
[...]
我曾尝试创建一个JSFIDLE示例,但Dojo 1.6.1在那里不可用,而Dojo.1.6.0的行为是不同的(您需要在行上单击鼠标左键,然后单击鼠标右键,然后菜单工作正常),因此我创建了一个简单的HTML示例,您可以在上面看到。要查看差异,只需更改代码底部的已注释TabContainer。以前有人见过这个吗

谢谢

JL