GXT / GWT HTML-контент перезагружается при переключении вкладок - PullRequest
0 голосов
/ 21 декабря 2010

Я работаю над проектом GXT / GWT.У меня есть две вкладки, в которых контент устанавливается на основе выбора из выпадающего менюСодержимое на одной вкладке представляет собой встроенное видео (Google Video или YouTube)

Проблема заключается в том, что при переключении вкладок видео перезагружается и начинается снова с самого начала.Я хотел бы иметь возможность переключать вкладки и продолжать воспроизводить или останавливать видео, когда фокус переключается на другую вкладку.

Любые идеи, как всегда, очень ценятся.

Ура, Бен

Ответы [ 4 ]

1 голос
/ 07 августа 2012

Я согласен с @mmohab. Это поведение iFrame и не связано со вспышкой. Проблема перезагрузки будет решена с использованием класса HtmlContainer класса Gxt и метода setUrl() вместо метода TabItem или ContentPanel setUrl HtmlContainer переносит данные вашего тела HTML или страницы URL в тег Div, а не в iFrame:

HtmlContainer html = new HtmlContainer("www.youtube.com");
yourTabItemObj.add(html);
0 голосов
/ 02 января 2011

Видео Google использует флэш-память, и когда вы переключаетесь на другую вкладку, оно удаляется из DOM, и Flash будет перезагружаться при переключении обратно. возможно, вы сможете создать собственный виджет для игрока, который переопределяет его и задает атрибуты CSS для отображения или видимости элемента dom.

0 голосов
/ 20 июня 2012

В браузерах diff существуют различные варианты решения этой проблемы.

Для FF, если вы переключитесь с одной вкладки на другую, она перезагрузит флэш-контент.Причина в том, что если вы переключаетесь с одной вкладки на другую, то свойство «display» отмененной вкладки меняется на «none», а когда вы снова возвращаетесь на эту вкладку, свойство «display» изменится на «block».Это основная причина этой проблемы в FF.

В IE вы не получите эту проблему.

Решение:

.templateTabItem {position: absolute !important;} //css

    TabItem item = new TabItem();
    if (!GXT.isIE && !GXT.isIE8 && !GXT.isIE9) {
        item.setHideMode(HideMode.VISIBILITY);
        item.addStyleName("templateTabItem");
    }
0 голосов
/ 01 января 2011

Это потому, что вы используете IFRAME для встраивания, IFRAME необходимо перезагрузить при изменении его положения или размера.Это делается в Firefox, однако IE не перезагружает IFRAME при изменении его положения или размера.

...