2010-02-08 12 views
5

¿Cuál es la forma correcta de cerrar una pestaña ExtJS programáticamente?Técnica adecuada para cerrar una pestaña ExtJS

Necesito hacer esto funcionar en IE6; aunque eliminar 'la pestaña de los trabajos de TabPanel, veo una advertencia de IE: Esta página contiene elementos seguros y no seguros ... Cuando hago clic en la X en la pestaña, no veo esta advertencia. Entonces, claramente algo inteligente está sucediendo cuando hago clic en la X.

Nota: la advertencia se produce cuando uso tabPanel.remove (aTab, verdadero) y no ocurre cuando uso tabPanel.remove (aTab, false). Por lo tanto, la advertencia de contenido mixto se muestra durante la eliminación y destrucción posterior del panel.

¿Tiene sentido simular el clic en una pestaña?

EDITAR

IE is telling me I have mixed SSL content when I don't

Respuesta

7

¿Está quitando elemento de la pestaña directamente, o estás quitando el componente pestaña de su contenedor? Ej .:

Ext.fly('tab-id').remove(); // Element API 

vs

myTabPanel.remove('tab-id'); // Panel API 

Ambos deben funcionar bien en términos de bombardear la pestaña de marcado, pero eliminando el elemento directamente puede tener consecuencias indeseables. Si está haciendo lo último (correcto), entonces no estoy seguro de cuál podría ser el problema. No tengo IE 6 a mano.

+0

Estoy haciendo esto último. El código funciona bien, porque el panel se elimina, pero veo la advertencia. Debo agregar que estoy destruyendo el panel durante la eliminación; Estoy seguro de que la advertencia ocurre durante la destrucción. – Upperstage

+0

Supongo que su página se ejecuta en https. ¿Ha verificado que todas las imágenes y otros recursos usan URL https? Una vez más, no estoy seguro de por qué sería diferente solo en la circunstancia que mencionaste. Internamente, onStripMouseDown() de TabPanel es el método relevante para mirar, y lo hace. Remove (t.item); Tenga en cuenta que está pasando falso para autoDestroy - ¿Está destruyendo la pestaña más tarde? –

+0

https: sí. Todos los recursos https: sí. onStripMouseDown realmente realiza this.remove (t.item) sans destroy. Estoy destruyendo la pestaña cuando elimino; Creo que el problema ocurre durante la destrucción (¿tal vez la destrucción es descuidada?). ¿Tiene sentido eliminar sin destruir? Parece una pérdida de memoria para mí. – Upperstage

0

Esto cierra una pestaña haciendo clic en el botón central de su mouse.

var middleClick = $(document).mousedown(function(e) { 
    if(e.which == 2){ 
       var tabPanel = <%= tabPanel.ClientID %>;  
       var activeTab = tabPanel.getActiveTab(); 
       if (e.target.textContent == activeTab.title) { 
        var activeTabIndex = tabPanel.items.findIndex('id', activeTab.id); 
        tabPanel.remove(activeTabIndex); 
       } 
      } 
      return true; 
    }); 

Hope it helps !! =)

Cuestiones relacionadas