Кнопка GWT работает в IE, а не Firefox Chrome - PullRequest
0 голосов
/ 29 февраля 2012

используя GWT, у меня есть PushButton (с изображением), содержащийся в FlowPanel, в свою очередь, содержащийся в компоненте DockPanel WEST. Кнопка реагирует на нажатия только в IE, но не в Firefox, Chrome. Любая помощь приветствуется ...

Код:

DockPanel dock = new DockPanel(); 
FlowPanel navigation = new FlowPanel(); 
PushButton synopsisButton = new PushButton(synopsis); 
navigation.add(synopsisButton); 
dock.add(navigation,dock.WEST); 
RootPanel.get().add(dock);

synopsisButton.addClickHandler(new ClickHandler() { 
  @Override 
  public void onClick(ClickEvent e) { 
    Window.alert("in synopsis click handler");
});

1 Ответ

3 голосов
/ 01 марта 2012

Система макетов GWT 2.0 предназначена для работы только в «стандартном режиме».Это означает, что вы всегда должны размещать следующую декларацию в верхней части ваших HTML-страниц:

Как упоминалось выше, некоторые из существующих панелей GWT не ведут себя полностью так, как ожидалось в стандартном режиме.Это связано, в первую очередь, с различиями между способами отображения таблиц в стандартных режимах и режимах причуд.

CellPanel (HorizontalPanel, VerticalPanel, DockPanel) - все эти панели используют ячейки таблицы в качестве основных структурных единиц.Хотя они все еще работают в режиме стандартов, они выложат своих детей несколько иначе.Основное отличие состоит в том, что их дочерние элементы не будут учитывать свойства ширины и высоты (обычно для дочерних элементов CellPanels явно задаются 100% ширина и высота).Существуют также различия в способе, которым браузер выделяет пространство для отдельных строк и столбцов таблицы, что может привести к неожиданному поведению в стандартном режиме.

Вы должны использовать DockLayoutPanel вместо DockPanel.VerticalPanel обычно можно заменить простой FlowPanel (поскольку элементы уровня блока будут естественным образом складываться вертикально).http://code.google.com/intl/ru-RU/webtoolkit/doc/latest/DevGuideUiPanels.html#Standards

Проверьте ваш файл .html в папке "war" в вашем проекте.Он должен содержать <!doctype html>.Я проверил ваш код, и он хорошо работает во всех браузерах.

...