Error: No se puede cerrar una ventana de Internet Explorer mediante el método window.setTimeout(window.close,1) en Windows XP Service Pack 2


Síntomas


Cuando hace clic en un hipervínculo que está diseñado para cerrar una ventana de Microsoft Internet Explorer, la ventana de Internet Explorer no se cierra. Este problema se produce en Microsoft Windows XP Service Pack 2.

Causa


El hipervínculo utiliza el método window.setTimeout(window.close,1) para cerrar la ventana de Internet Explorer.

Solución alternativa


Para evitar este problema, utilice el método window.setTimeout("window.close()", 1) o el método Window.Close ( ) para cerrar la ventana de Internet Explorer.

Puede utilizar el siguiente código de ejemplo para demostrar la solución.
<html>
<body>
<script>
function TimeoutCloseWindow2()
{
window.setTimeout("window.close()", 1);
}
function DirectCloseWindow()
{
window.close();
}
</script>
<p>
<a href="javascript:TimeoutCloseWindow2();">Workaround 1: Click here to try to close the window by using window.setTimeout("window.close()", 1)</a>
</p>
<p>
<a href="javascript:DirectCloseWindow();">Workaround 2: Click here to try to close the window by using window.close()</a>
</p>
</body>
</html>

Estado


Microsoft ha confirmado que se trata de un error de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información


Pasos para reproducir el problema

  1. Haga clic en Inicio, haga clic en
    Ejecutar, escriba Notepady, a continuación, haga clic en Aceptar.
  2. Coloque el siguiente ejemplo de código en el Bloc de notas.
    <html>
    <body>
    <script>
    function TimeoutCloseWindow()
    {
    window.setTimeout(window.close, 1);
    }
    </script>
    <a href="javascript:TimeoutCloseWindow();">Click here to try to close the window by using window.setTimeout(window.close, 1)</a>
    </body>
    </html>
  3. Guarde el archivo como Repro.html.
  4. Utilice Internet Explorer para abrir el archivo Repro.html.

    Nota: Si Internet Explorer muestra el mensaje siguiente, haga clic en el mensaje y, a continuación, haga clic en Permitir contenido bloqueado.

    Para ayudar a proteger su seguridad, Internet Explorer impidió que este archivo mostrara contenido activo que podría obtener acceso al equipo. Haga clic aquí para opciones.
  5. Haga clic en el hipervínculo haga clic aquí para intentar cerrar la ventana mediante window.setTimeout (window.close, 1) .

    Se espera para cerrar la ventana de Internet Explorer. Sin embargo, no cierre la ventana de Internet Explorer.