Come posso chiudere una finestra del browser senza ricevere il prompt “Vuoi chiudere questa finestra”?

Come posso chiudere una finestra del browser senza ricevere il messaggio Chiudi la finestra ?

Il prompt si verifica quando utilizzo window.close(); funzione.

 window.open('', '_self', ''); window.close(); 

Questo funziona per me.

Amico mio … c’è un modo ma “hack” non inizia a descriverlo. Devi fondamentalmente sfruttare un bug in IE 6 e 7.

Funziona ogni volta!

Invece di chiamare window.close() , redirect a un’altra pagina.

Pagina di apertura:

 alert("No whammies!"); window.open("closer.htm", '_self'); 

Reindirizza a un’altra pagina. Questo sciocca l’IE facendoti chiudere il browser su questa pagina.

Pagina di chiusura:

  

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 alcun standard, tutti i produttori di browser seguono questo ( documenti Mozilla ). Se questo accade in alcuni browser, si tratta di un bug di sicurezza che (idealmente) viene corretto molto rapidamente.

Nessuno degli hack nelle risposte a questa domanda funziona più a lungo, e se qualcuno si inventasse un altro hack sporco, alla fine smetterà di funzionare pure.

Ti suggerisco di non sprecare energia combattendo questo e di abbracciare il metodo che il browser ti offre in modo così utile: chiedi all’utente prima che tu schiacci la loro pagina.

Ecco la funzione Javascript che uso per chiudere il browser senza Prompt o Warning, può anche essere chiamata da Flash. Dovrebbe essere nel file html.

  function closeWindows() { var browserName = navigator.appName; var browserVer = parseInt(navigator.appVersion); //alert(browserName + " : "+browserVer); //document.getElementById("flashContent").innerHTML = "
  You have been logged out of the Game. Please Close Your Browser Window."; 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){ } } }

Nel tag del corpo:

  

Per chiudere la finestra:

  

Testato su Safari 4.0.5, FF per Mac 3.6, IE 8.0 e FF per Windows 3.5

Funziona su Chrome 26, Internet Explorer 9 e Safari 5.1.7 ( senza l’uso di una pagina di supporto, la risposta di Nick):

  

Il window.open annidato serve a far sì che IE non visualizzi il messaggio Chiudi la finestra .

Sfortunatamente è imansible ottenere Firefox per chiudere la finestra.

Per motivi di sicurezza, una finestra può essere chiusa in JavaScript solo se è stata aperta da JavaScript. Per chiudere la finestra, devi aprire una nuova finestra con _self come destinazione, che sovrascriverà la tua finestra corrente, e poi chiuderà quella (che puoi fare da quando è stata aperta tramite JavaScript).

 window.open('', '_self', ''); window.close(); 

Da qui :

 Close 

È necessario impostare window.opener su qualcosa, altrimenti si lamenta.

A causa dei miglioramenti della sicurezza in IE, non è ansible 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 aperta usando uno script, e quindi per chiudere la finestra. Di seguito è l’implementazione.

Prova questo, funziona come un fascino!
javascript chiudi la finestra corrente senza prompt IE

  

javascript chiudi la finestra corrente senza prompt IE

Crea una funzione JavaScript

  

Ora scrivi questo codice e chiama la funzione JavaScript sopra

 Help 

O semplicemente:

 close 
 window.open('', '_self', '').close(); 
 window.opener=window; window.close(); 

Il browser si sta lamentando perché stai usando JavaScript per chiudere una finestra che non è stata aperta con JavaScript, ad esempio window.open('foo.html'); .

La soluzione migliore che ho trovato è:

 this.focus(); self.opener=this; self.close(); 

Inserire il seguente codice nell’ASPX.

  

Inserire il codice seguente nel codice dietro l’evento clic sul pulsante.

 string myclosescript = ""; Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript); 

Se non si dispone di alcuna elaborazione prima di chiudere, è ansible inserire direttamente il seguente codice nell’ASPX stesso nel tag click del pulsante.

 OnClientClick="CloseWindow();" 

Spero che questo ti aiuti.

Questo funzionerà:

  

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; 

Così 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 ad un “valore” appropriato che nel mio caso era “falso”

Ho intenzione di postare questo perché questo è quello che sto attualmente utilizzando per il mio sito e funziona sia in Google Chrome e IE 10 senza ricevere messaggi popup:

       

Ho una funzione sul mio sito che voglio eseguire per salvare una variabile on / off per la sessione senza andare direttamente a una nuova pagina, quindi apro solo una piccola pagina web popup. Quella pagina Web si chiude quindi immediatamente con onload="window.close();" funzione.