¿Cómo puedo cerrar una ventana del navegador sin recibir el mensaje ¿Desea cerrar esta ventana ?
El mensaje aparece cuando uso la window.close();
función.
¿Cómo puedo cerrar una ventana del navegador sin recibir el mensaje ¿Desea cerrar esta ventana ?
El mensaje aparece cuando uso la window.close();
función.
Respuestas:
window.open('', '_self', ''); window.close();
Esto funciona para mi.
showModalDialog
? No funciona en IE10
Amigo mío ... hay una forma pero "hack" no empieza a describirla. Básicamente, debes aprovechar un error en IE 6 y 7.
¡Funciona todo el tiempo!
En lugar de llamar window.close()
, redirige a otra página.
Página de apertura:
alert("No whammies!");
window.open("closer.htm", '_self');
Redirigir a otra página. Esto engaña a IE para que le permita cerrar el navegador en esta página.
Página de cierre:
<script type="text/javascript">
window.close();
</script>
Impresionante, ¿eh?
Los scripts no pueden cerrar una ventana que abrió un usuario. Esto se considera un riesgo de seguridad. Aunque no está en ningún estándar, todos los proveedores de navegadores lo siguen ( documentos de Mozilla ). Si esto sucede en algunos navegadores, es un error de seguridad que (idealmente) se repara muy rápidamente.
Ninguno de los trucos en las respuestas a esta pregunta ya funciona, y si a alguien se le ocurre otro truco sucio, eventualmente también dejará de funcionar.
Le sugiero que no desperdicie energía luchando contra esto y adopte el método que el navegador le brinda tan amablemente: pregunte al usuario antes de que aparentemente bloquee su página.
Aquí está la función de Javascript que utilizo para cerrar el navegador sin aviso o advertencia, también se puede llamar desde Flash. Debe estar en un archivo html.
function closeWindows() {
var browserName = navigator.appName;
var browserVer = parseInt(navigator.appVersion);
//alert(browserName + " : "+browserVer);
//document.getElementById("flashContent").innerHTML = "<br> <font face='Arial' color='blue' size='2'><b> You have been logged out of the Game. Please Close Your Browser Window.</b></font>";
if(browserName == "Microsoft Internet Explorer"){
var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
if (ie7)
{
//This method is required to close a window without any prompt for IE7 & greater versions.
window.open('','_parent','');
window.close();
}
else
{
//This method is required to close a window without any prompt for IE6
this.focus();
self.opener = this;
self.close();
}
}else{
//For NON-IE Browsers except Firefox which doesnt support Auto Close
try{
this.focus();
self.opener = this;
self.close();
}
catch(e){
}
try{
window.open('','_self','');
window.close();
}
catch(e){
}
}
}
showModalDialog
. Encendido closeWindows
, abre una nueva ventana (la misma página) mientras que la anterior sigue abierta.
Esto funciona en Chrome 26, Internet Explorer 9 y Safari 5.1.7 ( sin el uso de una página de ayuda, ala respuesta de Nick):
<script type="text/javascript">
window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>
El anidado window.open
es para que IE no muestre el mensaje ¿Desea cerrar esta ventana ?
Desafortunadamente, es imposible que Firefox cierre la ventana.
En la etiqueta del cuerpo:
<body onload="window.open('', '_self', '');">
Para cerrar la ventana:
<a href="javascript:window.close();">
Probado en Safari 4.0.5, FF para Mac 3.6, IE 8.0 y FF para Windows 3.5
Por razones de seguridad, una ventana solo se puede cerrar en JavaScript si fue abierta por JavaScript. Para cerrar la ventana, debe abrir una nueva ventana con _self
como destino, que sobrescribirá su ventana actual, y luego cerrará esa (lo que puede hacer ya que se abrió a través de JavaScript).
window.open('', '_self', '');
window.close();
Desde aqui :
<a href="javascript:window.opener='x';window.close();">Close</a>
Necesita establecer window.opener
algo, de lo contrario se queja.
window.open('', '_self', '').close();
Lo siento un poco tarde aquí, pero encontré la solución, al menos para mi caso. Probado en Safari 11.0.3 y Google Chrome 64.0.3282.167
Debido a las mejoras de seguridad en IE, no puede cerrar una ventana a menos que sea abierta por un script. Entonces, la forma de evitar esto será dejar que el navegador piense que esta página se abre usando un script y luego cerrar la ventana. A continuación se muestra la implementación.
Prueba esto, ¡funciona de maravilla!
javascript cierra la ventana actual sin pedir IE
<script type="text/javascript">
function closeWP() {
var Browser = navigator.appName;
var indexB = Browser.indexOf('Explorer');
if (indexB > 0) {
var indexV = navigator.userAgent.indexOf('MSIE') + 5;
var Version = navigator.userAgent.substring(indexV, indexV + 1);
if (Version >= 7) {
window.open('', '_self', '');
window.close();
}
else if (Version == 6) {
window.opener = null;
window.close();
}
else {
window.opener = '';
window.close();
}
}
else {
window.close();
}
}
</script>
Crea una función de JavaScript
<script type="text/javascript">
function closeme() {
window.open('', '_self', '');
window.close();
}
</script>
Ahora escriba este código y llame a la función JavaScript anterior
<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>
O simplemente:
<a href="" onclick="closeme();">close</a>
Esto funcionará:
<script type="text/javascript">
function closeWindowNoPrompt()
{
window.open('', '_parent', '');
window.close();
}
</script>
window.opener=window;
window.close();
Coloque el siguiente código en ASPX.
<script language=javascript>
function CloseWindow()
{
window.open('', '_self', '');
window.close();
}
</script>
Coloque el siguiente código en el código detrás del evento de clic del botón.
string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>";
Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);
Si no tiene ningún procesamiento antes del cierre, puede poner directamente el siguiente código en el ASPX en la etiqueta de clic del botón.
OnClientClick="CloseWindow();"
Espero que esto ayude.
En mi situación, el siguiente código estaba incrustado en un archivo php.
var PreventExitPop = true;
function ExitPop() {
if (PreventExitPop != false) {
return "Hold your horses! \n\nTake the time to reserve your place.Registrations might become paid or closed completely to newcomers!"
}
}
window.onbeforeunload = ExitPop;
Entonces abrí la consola y escribí lo siguiente
PreventExitPop = false
Esto resolvió el problema. Entonces, averigüe el código JavaScript y busque la (s) variable (s) y asígnelas a un "valor" apropiado que en mi caso era "falso".
Voy a publicar esto porque esto es lo que estoy usando actualmente para mi sitio y funciona tanto en Google Chrome como en IE 10 sin recibir ningún mensaje emergente:
<html>
<head>
</head>
<body onload="window.close();">
</body>
</html>
Tengo una función en mi sitio que quiero ejecutar para guardar una variable de activación / desactivación en la sesión sin ir directamente a una nueva página, así que abro una pequeña página web emergente. Luego, esa página web se cierra automáticamente con la onload="window.close();"
función.
a
with target=_blank
para abrir una pequeña ventana emergente en una URL específica, luego finalmente uso JS para cerrar la ventana. Su propósito es que la URL específica guarde un valor en la sesión para deshabilitar las imágenes de fondo, aunque aquí pronto la eliminaré a favor de ajax una vez que descubra cómo hacer ajax. (todavía aprendiendo las cuerdas persay)
window.open('','_self').close()