Condividi tramite


I componenti aggiuntivi che intercettano il messaggio di WM_CLOSE potrebbero non riuscire in Internet Explorer 9 versioni successive

Avviso

L'applicazione desktop Internet Explorer 11, ritirata e fuori supporto, è stata disabilitata in modo permanente tramite un aggiornamento di Microsoft Edge su alcune versioni di Windows 10. Per altre informazioni, vedere Domande frequenti sul ritiro delle app desktop di Internet Explorer 11.

Questo articolo fornisce informazioni sulla risoluzione del problema per cui non è possibile impedire la chiusura di una scheda o di una finestra del browser tramite il WM_CLOSE messaggio intercettato da alcuni componenti aggiuntivi in Internet Explorer 9 o versione successiva.

Versione originale del prodotto: Internet Explorer 9 e versioni successive
Numero KB originale: 2587178

Sintomi

Alcuni componenti aggiuntivi per Internet Explorer tentano di impedire la chiusura di una scheda o di una finestra del browser intercettando il WM_CLOSE messaggio prima che la scheda lo riceva. In Internet Explorer 9 o versione successiva, questa azione potrebbe non impedire la chiusura della scheda.

Causa

Internet Explorer 9 o versione successiva, ad esempio Internet Explorer 8, isola le schede nei propri processi. Quando una scheda viene chiusa in Internet Explorer 8, il processo della scheda deve chiudersi prima che la scheda sparisca visivamente. Per rendere Internet Explorer 9 o una versione successiva più reattiva per l'utente, il browser ora nasconderà una scheda non appena l'utente lo chiude. Internet Explorer 9 o una versione successiva gestirà gran parte dei meccanismi di chiusura di una scheda o di una finestra mentre la scheda è invisibile.

Risoluzione

L'intercettazione o l'aggancio del WM_CLOSE del messaggio non è un metodo supportato per evitare la chiusura di una scheda in Internet Explorer.

Tuttavia, l'autore del componente aggiuntivo o delle pagine Web può essere in grado di apportare modifiche che consentono a questo metodo di funzionare in Internet Explorer 9 o versione successiva. Questo nuovo comportamento di chiusura della scheda non verrà usato se l'evento window.onbeforeunload dispone di gestori registrati. Il codice seguente è un esempio di questo approccio, come potrebbe essere implementato nello script nella pagina:

function myHandler()
{
 // do nothing
}
window.onbeforeunload = myHandler;

Ulteriori informazioni

Per altre informazioni su Internet Explorer, vedere la Guida di Internet Explorer.