2010-04-09 9 views
5

jQuery UI 탭 안에 SWF 무비가 있습니다. 문제는 내가 탭에서 다른 탭으로 클릭 할 때마다 SWF가 다시로드된다는 것입니다. 를 클릭 한 다음 뒤로를 클릭하십시오. DOM을 검사하여 SWF가 포함 된 div가 DOM을 클릭했을 때 여전히 DOM에 있다는 것을 알 수 있으므로이 탭으로 돌아 가면 다시로드하는 이유를 알 수 없습니다. jQuery UI 탭 내부의 SWF를 다시로드하지 않으려면

나는 설정되는 디스플레이를 방지하기 위해 시도하는 다음과 같은 CSS 규칙을 추가 : 없음,하지만 Flash 무비는 여전히 다시로드 :

.ui-tabs .ui-tabs-hide { 
    display: block !important; 
    position: absolute; 
    left: -10000px; 
} 

업데이트 :이은 다음 Firefox bug 관련이 판명 된 2001 년 이후부터/Firefox 0.9. 그러나 나는 여전히 좋은 해결 방법이 없습니다.

+0

@Raul Agrait을하는 데 도움이

.ui-tabs .ui-tabs-panel[aria-hidden="true"] 

희망 : CSS의에서

.ui-tabs .ui-tabs-hide 

지금으로 대체 할 필요가 당신은 객체 및 삽입의 크기를 설정 대답을 시도 했습니까? 그것은 나를 위해 스크롤바 문제를 해결합니다. –

+0

같은 문제가 발생합니다. http://stackoverflow.com/questions/15499610/app-is-loading-each-time –

답변

4

앞서 언급 한이 솔루션은 크롬에서 작동하지만 파이어 폭스에서 어떤 이유로 든이 (내가 전에 시간을 일하고 있었다 확신합니다) 도움이되기를 바랍니다. 나는 또 다른 해결책을 찾았습니다 :

먼저 display : none을 사용하지 않고 내용을 숨기려면 제네릭 규칙이 필요합니다.

/** hide the tab without using display:none; **/ 
.ui-tabs .ui-tabs-hide {  
display: block !important; 
height: 0!important; 
width: 0!important; 
border:none!important; 
visibility:hidden!important; 

은}

/** make sure your swf does not have leftover height when hidden **/ 
.ui-tabs .ui-tabs-hide object, 
.ui-tabs .ui-tabs-hide embed { 
    height: 0; 
    width: 0; 
} 

그것은 나를 위해 작동합니다. 만약에 너를 위해 일하면 말해라! 제롬 바그너

+0

@ 제롬 바그너 :이 문제는 UI에서 여러분이 정말 큰 스크롤바를 얻는다는 것입니다. 왜냐하면 DOM은 여전히 는 활성 탭에 있지 않더라도 각 탭의 모든 요소를 ​​레이아웃에 포함합니다. –

+0

@ Raul Agrait : 스크롤바 문제를 내 대답에 대한 수정으로 수정했다고 생각합니다. 말해! –

+0

귀하의 솔루션이 제 문제를 완전히 해결하지는 못하지만 어떤면에서 도움이됩니다. 그래서 최선의 답변을 제공 할 수있는 현상금을 수락하겠습니다. –

1

일부 브라우저 (예 : firefox)는 숨기기/표시 (표시 : 없음;)를 수행하는 즉시 플래시 무비를 다시로드합니다. 이것은 탭 시스템에서 발생합니다. 내가 아는 유일한 해결책은 다음과 같습니다.

  1. 를 사용하여 멀티 플래시를하려는 경우에 까다로운 될 수

숨겨진

  • 이 탭이 표시 될 때 플래시와 화면보기 밖으로 이동되어 있는지 확인 탭 시스템의 이벤트/청취 일반 솔루션은 ..

    나는 이것이 당신

  • +0

    안녕하세요, -1에 대해 자세히 설명해 주시겠습니까? 이것은 내가 파이어 폭스에서 관찰해온 것입니다. 나는 일반적으로 탭 div의 바깥쪽에 절대적으로 위치하는 플래시를 넣는다. –

    +0

    예, 우연히 아래쪽 화살표를 클릭하고 실행 취소하려고했지만 이제는 "이 답변을 편집하지 않으면 너무 오래 투표 할 수 없습니다"라는 메시지가 나타납니다. 아마도 작은 편집을 할 수 있습니까? –

    +0

    나는 편집을했다. 그래서 당신의 CSS와 함께 그것을 시도하고 그것이 작동하지 않았나요? 나는 당신의 현상금을 보았고, 아무도 그 전에 아무도 대답하지 않으면 다음 날에 더 자세히 보려고 할 것입니다 .- –

    1

    승인 된 답변의 업데이트와 마찬가지입니다. 최신 버전의 jQuery UI에서는 클래스가 변경되었습니다.