window.close() no funciona: los scripts pueden cerrar solo las ventanas que abrió

Resuelto mayconfsbrito asked hace 10 años • 11 respuestas

Siempre tengo un problema cuando intento cerrar una ventana a través del window.close()método de Javascript, mientras el navegador muestra el siguiente mensaje en la consola:

"Scripts may close only the windows that were opened by it."

Esto ocurre en cada parte de la página. Puedo ejecutar esto directamente desde un enlace, botón o script, pero este mensaje siempre se muestra.

Intenté reemplazar el window.close();método para las funciones (o variantes de estas) a continuación, pero no volvió a suceder nada:

window.open('', '_self', '');
window.close();
mayconfsbrito avatar Sep 19 '14 22:09 mayconfsbrito
Aceptado

Busqué muchas páginas de la web a través de Google y aquí en Stack Overflow, pero nada sugirió que resolviera mi problema.

Después de muchos intentos, cambié mi forma de probar ese controlador. Luego descubrí que el problema ocurre siempre cuando volví a abrir la página a través del Ctrl + Shift + Tacceso directo en Chrome. Entonces la página se ejecutó, pero sin una referencia a la ventana principal y porque no se puede cerrar.

mayconfsbrito avatar Sep 19 '2014 15:09 mayconfsbrito

Los mensajes de error no son más claros que esto:

"Scripts may close only the windows that were opened by it."

Si su secuencia de comandos no inició la apertura de la ventana (con algo como window.open), entonces la secuencia de comandos en esa ventana no puede cerrarla. Es una medida de seguridad para evitar que un sitio web tome el control de su navegador y cierre ventanas.

somethinghere avatar Sep 19 '2014 15:09 somethinghere

No puedes cerrar una ventana actual ni ninguna ventana o página que se abra usando '_self', pero puedes hacer esto.

var customWindow = window.open('', '_blank', '');
    customWindow.close();
andrex avatar Sep 19 '2014 15:09 andrex