Come posso chiudere una finestra del browser senza ricevere il prompt Vuoi chiudere questa finestra ?
Il prompt si verifica quando utilizzo la window.close();
funzione.
Come posso chiudere una finestra del browser senza ricevere il prompt Vuoi chiudere questa finestra ?
Il prompt si verifica quando utilizzo la window.close();
funzione.
Risposte:
window.open('', '_self', ''); window.close();
Questo funziona per me.
showModalDialog
? Non funziona su IE10
Amico mio ... c'è un modo ma "hack" non inizia a descriverlo. Devi fondamentalmente sfruttare un bug in IE 6 e 7.
Funziona sempre!
Invece di chiamare window.close()
, reindirizza a un'altra pagina.
Pagina di apertura:
alert("No whammies!");
window.open("closer.htm", '_self');
Reindirizza a un'altra pagina. Questo inganna IE facendoti chiudere il browser su questa pagina.
Pagina di chiusura:
<script type="text/javascript">
window.close();
</script>
Fantastico eh ?!
Gli script non sono autorizzati a chiudere una finestra aperta da un utente. Questo è considerato un rischio per la sicurezza. Sebbene non sia in alcuno standard, tutti i fornitori di browser lo seguono ( documenti Mozilla ). Se ciò accade in alcuni browser, è un bug di sicurezza che (idealmente) viene corretto molto rapidamente.
Nessuno degli hack nelle risposte a questa domanda funziona più e se qualcuno inventasse un altro hack sporco, alla fine smetterà di funzionare.
Ti suggerisco di non sprecare energie per combattere questo e di abbracciare il metodo che il browser ti offre così utilmente: chiedi all'utente prima che apparentemente si blocchi la sua pagina.
Ecco la funzione Javascript che utilizzo per chiudere il browser senza prompt o avviso, può essere richiamata anche da Flash. Dovrebbe essere in un file 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
. On closeWindows
, apre una nuova finestra (la stessa pagina) mentre la precedente è ancora aperta.
Funziona in Chrome 26, Internet Explorer 9 e Safari 5.1.7 ( senza l'uso di una pagina di aiuto, come la risposta di Nick):
<script type="text/javascript">
window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>
L'annidamento window.open
serve a fare in modo che IE non visualizzi il prompt Vuoi chiudere questa finestra .
Sfortunatamente è impossibile far chiudere la finestra a Firefox.
Nel tag del corpo:
<body onload="window.open('', '_self', '');">
Per chiudere la finestra:
<a href="javascript:window.close();">
Testato su Safari 4.0.5, FF per Mac 3.6, IE 8.0 e FF per Windows 3.5
Per motivi di sicurezza, una finestra può essere chiusa in JavaScript solo se è stata aperta da JavaScript. Per chiudere la finestra, è necessario aprire una nuova finestra con _self
come destinazione, che sovrascriverà la finestra corrente, quindi chiudere quella (cosa che puoi fare poiché è stata aperta tramite JavaScript).
window.open('', '_self', '');
window.close();
Da qui :
<a href="javascript:window.opener='x';window.close();">Close</a>
Devi impostare window.opener
qualcosa, altrimenti si lamenta.
window.open('', '_self', '').close();
Scusa un po 'tardi qui, ma ho trovato la soluzione, almeno per il mio caso. Testato su Safari 11.0.3 e Google Chrome 64.0.3282.167
A causa dei miglioramenti della sicurezza in IE, non è possibile chiudere una finestra a meno che non venga aperta da uno script. Quindi il modo per aggirare questo sarà lasciare che il browser pensi che questa pagina sia stata aperta usando uno script, e poi chiudere la finestra. Di seguito è riportata l'implementazione.
Prova questo, funziona a meraviglia!
javascript chiude la finestra corrente senza prompt 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 funzione JavaScript
<script type="text/javascript">
function closeme() {
window.open('', '_self', '');
window.close();
}
</script>
Ora scrivi questo codice e chiama la funzione JavaScript sopra
<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>
O semplicemente:
<a href="" onclick="closeme();">close</a>
Questo funzionerà:
<script type="text/javascript">
function closeWindowNoPrompt()
{
window.open('', '_parent', '');
window.close();
}
</script>
window.opener=window;
window.close();
Inserisci il codice seguente nell'ASPX.
<script language=javascript>
function CloseWindow()
{
window.open('', '_self', '');
window.close();
}
</script>
Inserisci il codice seguente nell'evento di clic sul pulsante code behind.
string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>";
Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);
Se non si dispone di alcuna elaborazione prima della chiusura, è possibile inserire direttamente il codice seguente nell'ASPX stesso nel tag di clic del pulsante.
OnClientClick="CloseWindow();"
Spero che sia di aiuto.
Nella mia situazione il seguente codice è stato incorporato in un file 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;
Quindi ho aperto la console e ho scritto quanto segue
PreventExitPop = false
Questo ha risolto il problema. Quindi, trova il codice JavaScript e trova le variabili e assegnale a un "valore" appropriato che nel mio caso era "falso"
Lo pubblicherò perché è quello che sto utilizzando attualmente per il mio sito e funziona sia in Google Chrome che in IE 10 senza ricevere alcun messaggio popup:
<html>
<head>
</head>
<body onload="window.close();">
</body>
</html>
Ho una funzione sul mio sito che voglio eseguire per salvare una variabile di attivazione / disattivazione nella sessione senza passare direttamente a una nuova pagina, quindi apro solo una piccola pagina Web popup. Quella pagina web si chiude quindi immediatamente con la onload="window.close();"
funzione.
a
con target=_blank
per aprire una piccola finestra popup a un URL specifico, quindi alla fine uso JS per chiudere la finestra. Lo scopo è che l'URL specifico salvi un valore nella sessione per disabilitare le immagini di sfondo, anche se qui presto lo cancellerò a favore di ajax una volta che avrò capito come fare ajax. (ancora imparando le basi)
window.open('','_self').close()