2010-12-21 7 views
0

Ich arbeite an einem GXT/GWT-Projekt. Ich habe zwei Registerkarten, auf denen Inhalt basierend auf Auswahlen aus einem Dropdown-Menü festgelegt wird. Der Inhalt in einem Tab ist ein eingebettetes Video (Google Video oder Youtube Video)GXT/GWT HTML-Inhalt neu geladen, wenn Tabs wechseln

Das Problem ist, dass beim Wechseln der Tabs, das Video neu geladen und startet von vorne wieder. Was ich möchte, ist in der Lage, Tabs zu wechseln und das Video weiter zu spielen oder zu pausieren, wenn der Fokus auf eine andere Registerkarte wechselt.

Alle Ideen, wie immer, werden sehr geschätzt.

Cheers, Ben

+0

Haben Sie Registerkarte Inhalt auf der Registerkarte Auswahl erstellen? –

Antwort

0

Das ist, weil Sie einen IFRAME zum Einbetten verwenden, IFRAME muss, wenn seine Position oder Größe Änderungen neu zu laden. Dies geschieht in Firefox, aber IE lädt IFRAME nicht neu, wenn sich seine Position oder Größe ändert.

0

Google Video verwendet Flash, und wenn Sie zu einem anderen Tab wechseln, wird es aus dem DOM entfernt und Flash muss neu geladen werden, wenn Sie zurückwechseln. Sie können möglicherweise ein benutzerdefiniertes Widget für den Player erstellen, der es retariert, und entweder die Anzeigeattribute oder die Sichtbarkeits-CSS-Attribute des dom-Elements festlegen.

0

Es gibt Diff-Verhalten dieses Problems in diff-Browsern.

Bei FF wird der Flash-Inhalt neu geladen, wenn Sie von einer Registerkarte zur anderen wechseln. Der Grund dafür ist, dass, wenn Sie von einem Reiter zu einem anderen wechseln, die nicht ausgewählte Registerkarte "display" -Eigenschaft auf "none" geändert wird und wenn Sie wieder zu diesem Reiter zurückkehren, wird "display" -Eigenschaft in "block" geändert. Dies ist die Ursache dieses Problems in FF.

In IE erhalten Sie dieses Problem nicht.

Lösung:

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

    TabItem item = new TabItem(); 
    if (!GXT.isIE && !GXT.isIE8 && !GXT.isIE9) { 
     item.setHideMode(HideMode.VISIBILITY); 
     item.addStyleName("templateTabItem"); 
    } 
1

Ich bin einverstanden mit @mmohab. Es ist iFrames Verhalten und bezieht sich nicht auf Flash. Reload Problem wird gelöst, indem Gxt HtmlContainer Klasse und setUrl() Methode anstelle von TabItem oder ContentPanelsetUrl Methode verwenden. HtmlContainer hüllt Ihren gegeben Html oder URL Seite Körper zu Div -Tags und nicht iFrame:

HtmlContainer html = new HtmlContainer("www.youtube.com"); 
yourTabItemObj.add(html); 
Verwandte Themen