Una extensión o un programa de software de terceros para lograr esto suena como demasiado trabajo. Algunas respuestas se aplican sólo a Mac, mientras que otras requieren que añadas ejecutables de script en Chrome para inyectar un determinado script en todas las páginas, lo que de nuevo causa un problema en el que se muestra el cuadro de confirmación para todas las pestañas.
Creo que la necesidad de la mayoría de los usuarios aquí es que quieren proteger toda la ventana para que no se cierre a la vez y no cada pestaña. He creado una simple página HTML estática con un poco de JavaScript que hace que aparezca un cuadro de confirmación cuando toda la ventana está a punto de cerrarse.
Puedes encontrar la página HTML aquí (alojada en JSBin) : http://jsbin.com/pejejib
*¿Cómo usarla? * El único requisito es que tengas la página abierta en Chrome siempre durante una sesión para que cada vez que hayas pulsado el botón “X” o el atajo de teclado para cerrar la ventana de Chrome, se ejecute el script de la página que he creado y se pida confirmación.
- Puedes marcarlo y abrirlo según tus requerimientos - cuando estás a punto de iniciar una larga sesión de navegación y quieres prevenir tales accidentes, entonces esta es la mejor opción.
- Si no quieres molestarte en abrirlo cada vez que abras Chrome, puedes ir a la página > clic derecho en la pestaña > pestaña de pines. Ahora, cada vez que cierres el navegador, la pestaña con el pin se abrirá automáticamente la próxima vez que lo abras.
- O configúrala como una de tus páginas de inicio en Chrome. (mejor opción si usas las páginas de inicio)
Los beneficios de esto son:
- No se requiere ninguna instalación o extensión, es sólo una simple página HTML
- No muestra el cuadro de confirmación varias veces, es decir, cada una para todas las pestañas.
- Puedes crear tu propio tenedor y usarlo de la manera que quieras
Para la transparencia, este es el código JavaScript de la página -
window.onbeforeunload = function(e) {
var dialogText = 'Are you sure you want to close the Window?';
e.returnValue = dialogText;
return dialogText;
};
¡Sí, eso es todo! Simple y directo.