Il gadget della barra laterale di Vista non mostra il riquadro a comparsa: System.Gadget.Flyout.show non è impostato su true
-
03-07-2019 - |
Domanda
Ho riscontrato un bug molto strano. Non riesco a visualizzare il riquadro a comparsa sul mio gadget, nonostante abbia riprodotto il carattere del codice a comparsa per il personaggio da un gadget con un riquadro a comparsa che funziona correttamente.
Ecco il codice:
function doFly(i){
var div = 'div_' + i;
flyHTML = $(div).html();
if (System.Gadget.Flyout.show == false){
System.Gadget.Flyout.file = "flyout.html";
System.Gadget.Flyout.show = true;
msgJS(System.Gadget.Flyout.show);
}
else{
System.Gadget.Flyout.show = false;
}
}
La funzione msgJS fornisce un popup ActiveX a scopo di debug. Anche se ho impostato .show su true nella riga precedente, il valore è ancora falso quando chiamo il popup. Non riesco a visualizzare il riquadro a comparsa, punto. Inizialmente pensavo di perdere eventi relativi ai clic, ma se rimango nel DOM principale del gadget, i clic vengono registrati e il resto del codice viene eseguito correttamente.
Che cosa sta succedendo in quel .show non sarebbe ambientato affatto? Ho controllato i bug noti e nessuno di questi sembra applicarsi a questo. È esasperante.
Soluzione
Aggiornamento: ecco il codice che sto usando ora:
funzione doFly (i) {
var div = 'div_' + i;
flyHTML = $(div).html();
if (System.Gadget.Flyout.show == false){
try {
System.Gadget.Flyout.file = "flyout.html";
System.Gadget.Flyout.show = true;
$('a#teamr').text(System.Gadget.Flyout.show);
}
catch(e){
$('a#teamr').text(e);
}
}
else{
System.Gadget.Flyout.show = false;
}
Il che dimostra che il codice non genera un'eccezione e che il valore di .show è falso. C'è un bug associato alla barra laterale in cui il gadget perderà il focus e questo chiuderà il riquadro a comparsa. Posso solo immaginare che dovrò aggirarlo. La domanda che ho è: che cosa sta causando la perdita di concentrazione? Bizarre.