Я потратил некоторое время на упрощение кода, чтобы получить простой пример проблемы.Я использую Dojo 1.6.1.У меня есть TabContainer, определенный на моей странице.Динамически, я добавляю к нему две вкладки, каждая из которых содержит EnhancedGrid с rowMenu (щелчок правой кнопкой мыши).Проблема заключается в том, что меню не работает правильно в IE8, если TabContainer определен для использования всего пространства, доступного на странице.Если я использую определенную высоту и ширину, она работает нормально.Под неправильной работой я имею в виду следующее: меню довольно простое;у него есть только два MenuItem, один из них - PopupMenu, который показывает подменю следующим образом:
Если TabContainer принимает все доступные ширину и высоту, меню что-то делаеточень странно.Во-первых, если вы щелкнете правой кнопкой мыши по строке, она ничего не сделает.Вам нужно второй щелчок правой кнопкой мыши.Затем отображается меню, но при открытии подменю главное меню исчезает, и подменю не работает.Он продолжает плавать до тех пор, пока вы не перейдете на другую страницу:
При сбое выдается ошибка javascript, в которой говорится, что «undefined» является нулевым или не является объектом »настрока 208 dojox / grid / _FocusManager.js
[...]
_scrollHeader: function(currentIdx){
var info = null;
if(this._colHeadNode){
var cell = this.grid.getCell(currentIdx);
info = this._scrollInfo(cell, cell.getNode(0));
}
[...]
Я пытался создать образец jsfiddle, но Dojo 1.6.1 там не доступен, а с Dojo .1.6.0 поведение отличается(Вам нужно щелкнуть левой кнопкой мыши по строке, затем правой кнопкой мыши, а затем меню работает нормально), поэтому я создал простой пример HTML, который вы можете увидеть на http://pastebin.com/jDNFQxrP. Чтобы увидеть разницу, которую вы простонеобходимо изменить прокомментированный TabContainer в нижней части кода.Кто-нибудь видел это раньше?
Спасибо
JL