2010-12-21 9 views
0

私はGXT/GWTプロジェクトを作成しています。ドロップダウンメニューからの選択に基づいてコンテンツが設定される2つのタブがあります。 1つのタブのコンテンツは埋め込み動画(GoogleビデオまたはYouTube動画)ですタブを切り替えるとGXT/GWTのHTMLコンテンツが再読み込みされます

タブを切り替えると、ビデオが最初から再読み込みされて開始されるという問題があります。私が望むのは、タブを切り替えて、フォーカスが別のタブに切り替わったときにビデオの再生や一時停止を継続できるようにすることです。

いつものように、どんなアイデアも大歓迎です。あなたは埋め込むためのIFRAMEを使用しているためだ

乾杯、 ベン

+0

あなたはタブ選択タブのコンテンツを作成するのですか? –

答えて

0

、IFRAMEは、ときにその位置やサイズ変更リロードする必要があります。これはFirefoxで行われますが、IEの位置やサイズが変更された場合、IFRAMEはリロードされません。

0

GoogleビデオではFlashが使用されています。別のタブに切り替えるとDOMから削除され、スイッチバックするとFlashが読み込まれます。あなたはそれを再作成するプレイヤー用のカスタムウィジェットを作成し、DOMエレメントの表示属性または可視性CSS属性を設定することができます。

0

diffブラウザでこの問題のdiff動作があります。

FFでは、あるタブから別のタブに切り替えると、フラッシュコンテンツがリロードされます。その理由は、あるタブから他のタブに切り替えると、選択解除されたタブの「表示」プロパティが「なし」に変更され、再びそのタブに戻ると「表示」プロパティが「ブロック」に変更されるためです。これが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"); 
    } 
1

私はは@mmohabに同意します。これはiFrameの動作であり、フラッシュには関係しません。再ロードの問題は、TabItemまたはContentPanelsetUrlメソッドを使用する代わりに、GxtのHtmlContainerクラスとsetUrl()メソッドを使用して解決します。 HtmlContainerは、ラップ、あなたの指定したHTML形式またはURLページ本体のdivタグにはないのiFrame:

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