2010-04-09 14 views
5

Tengo una película SWF dentro de una pestaña jQuery UI, y el problema que tengo es que el SWF se vuelve a cargar cada vez que hago clic fuera de la pestaña en otra pestaña , y luego haz clic atrás. Puedo inspeccionar el DOM y ver que el div que contiene el SWF todavía está en el DOM cuando hago clic, así que no sé por qué parece que vuelve a cargarlo cuando hago clic nuevamente en la pestaña.Cómo detener el SWF dentro de una pestaña jQuery UI desde la recarga

he añadido las siguientes reglas CSS para tratar de evitar que la pantalla se establece en: ninguno, pero la película Flash todavía está recargando:

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

Actualización: Resulta que esto está relacionado con la siguiente Firefox bug cuales ha estado presente desde 2001/Firefox 0.9. Todavía no tengo una buena solución sin embargo.

+0

@Raul Agrait: ¿trató la respuesta que establece el tamaño del objeto y de inserción? soluciona el problema de la barra de desplazamiento para mí. –

+0

obteniendo el mismo problema http://stackoverflow.com/questions/15499610/app-is-loading-each-time –

Respuesta

4

La solución se mencionó anteriormente funciona en Chrome, pero no en Firefox por cualquier razón (estoy seguro de que estaba trabajando hace algún tiempo). Encontré una solución más:

primero necesita una regla genérica para "ocultar" el contenido sin usar display: ninguno;

/** 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; 
} 

funciona para mí. ¡Dime si funciona para ti! Jerome WAGNER

+0

@Jerome WAGNER: El problema con esto es que en tu UI, obtienes una barra de desplazamiento muy grande porque el DOM todavía incluye en su diseño todos los elementos para cada pestaña, incluso cuando no están en la pestaña activa. –

+0

@Raul Agrait: Creo que he solucionado el problema de la barra de desplazamiento con una modificación que hice en mi respuesta. ¡Dime! –

+0

Si bien su solución no resuelve completamente mi problema, sí ayuda en algunos aspectos, por lo que lo aceptaré para otorgarle la recompensa por proporcionar la mejor respuesta. –

1

Algunos navegadores (por ejemplo, Firefox) están recargando películas flash tan pronto como oculte/muestre (visualice: ninguno;) en ellas. Esto es lo que está sucediendo con el sistema de pestañas. La única solución que conozco es

  1. tienen el flash con una posición: absoluta;
  2. escuchar el caso del sistema de pestañas
  3. asegúrese de que el flash se mueve dentro y fuera de la vista de la pantalla cuando se muestra la pestaña/oculta

Esto puede llegar a ser difícil si usted quiere un multi-flash , solución genérica ..

espero que esto le ayudará a

+0

Hola, ¿podría explicar el -1? Esto es realmente lo que he estado observando en Firefox. Usualmente pongo el flash absolutamente posicionado fuera de la pestaña div. –

+0

Sí, accidentalmente hice clic en la flecha hacia abajo, y luego intenté deshacerlo, pero ahora recibo un mensaje que dice "Vota demasiado viejo para cambiarlo, a menos que se edite esta respuesta". ¿Tal vez podrías hacer una pequeña edición? –

+0

Hice la edición. ¿Entonces lo probaste con tu CSS y no funcionó? Vi tu recompensa y trataré de echar un vistazo más profundo en los próximos días si nadie más responde antes ;-) –

1

Solo como una actualización para la respuesta aceptada. En las versiones más recientes de jQuery UI, las clases han cambiado.

.ui-tabs .ui-tabs-hide 

en el css ahora necesita ser reemplazado con:

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

Espero que ayude

Cuestiones relacionadas