Comment puis-je fermer une fenêtre de navigateur sans recevoir l' invite Voulez-vous fermer cette fenêtre ?
L'invite se produit lorsque j'utilise la window.close();
fonction.
javascript
browser
Derek
la source
la source
window.open('','_self').close()
Réponses:
window.open('', '_self', ''); window.close();
Cela fonctionne pour moi.
la source
showModalDialog
? Cela ne fonctionne pas sur IE10Mon ami ... il y a un moyen mais "hack" ne commence pas à le décrire. Vous devez essentiellement exploiter un bogue dans IE 6 et 7.
Fonctionne à chaque fois!
Au lieu d'appeler
window.close()
, redirigez vers une autre page.Page d'ouverture:
alert("No whammies!"); window.open("closer.htm", '_self');
Redirigez vers une autre page. Cela trompe IE en vous laissant fermer le navigateur sur cette page.
Page de clôture:
<script type="text/javascript"> window.close(); </script>
Génial hein?!
la source
Les scripts ne sont pas autorisés à fermer une fenêtre ouverte par un utilisateur. Ceci est considéré comme un risque de sécurité. Bien que ce ne soit dans aucune norme, tous les fournisseurs de navigateurs le suivent ( Mozilla docs ). Si cela se produit dans certains navigateurs, c'est un bogue de sécurité qui (idéalement) est corrigé très rapidement.
Aucun des hacks dans les réponses à cette question ne fonctionne plus, et si quelqu'un proposait un autre hack sale, il cessera finalement de fonctionner également.
Je vous suggère de ne pas gaspiller d'énergie à lutter contre cela et d'adopter la méthode que le navigateur vous donne si utilement - demandez à l'utilisateur avant que vous ne plantiez apparemment sa page.
la source
Voici la fonction Javascript que j'utilise pour fermer le navigateur sans invite ni avertissement, elle peut également être appelée depuis Flash. Il devrait être dans un fichier 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){ } } }
la source
showModalDialog
. ActivécloseWindows
, il ouvre une nouvelle fenêtre (la même page) alors que la précédente est toujours ouverte.Cela fonctionne dans Chrome 26, Internet Explorer 9 et Safari 5.1.7 ( sans l'utilisation d'une page d'aide, ala réponse de Nick):
<script type="text/javascript"> window.open('javascript:window.open("", "_self", "");window.close();', '_self'); </script>
L'imbrication
window.open
consiste à empêcher IE d'afficher l' invite Voulez-vous fermer cette fenêtre .Malheureusement, il est impossible de faire fermer la fenêtre par Firefox.
la source
Dans la balise body:
<body onload="window.open('', '_self', '');">
Pour fermer la fenêtre:
<a href="javascript:window.close();">
Testé sur Safari 4.0.5, FF pour Mac 3.6, IE 8.0 et FF pour Windows 3.5
la source
Pour des raisons de sécurité, une fenêtre ne peut être fermée en JavaScript que si elle a été ouverte par JavaScript. Pour fermer la fenêtre, vous devez ouvrir une nouvelle fenêtre avec
_self
comme cible, qui écrasera votre fenêtre actuelle, puis fermez celle-ci (ce que vous pouvez faire depuis son ouverture via JavaScript).window.open('', '_self', ''); window.close();
la source
D' ici :
<a href="javascript:window.opener='x';window.close();">Close</a>
Vous devez vous mettre
window.opener
à quelque chose, sinon il se plaint.la source
window.open('', '_self', '').close();
Désolé un peu tard ici, mais j'ai trouvé la solution, du moins pour mon cas. Testé sur Safari 11.0.3 et Google Chrome 64.0.3282.167
la source
En raison des améliorations de sécurité dans IE, vous ne pouvez pas fermer une fenêtre à moins qu'elle ne soit ouverte par un script. Le moyen de contourner ce problème sera donc de laisser le navigateur penser que cette page est ouverte à l'aide d'un script, puis de fermer la fenêtre. Voici la mise en œuvre.
Essayez ceci, cela fonctionne comme un charme!
javascript ferme la fenêtre actuelle sans invite 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>
javascript ferme la fenêtre actuelle sans invite IE
la source
Créer une fonction JavaScript
<script type="text/javascript"> function closeme() { window.open('', '_self', ''); window.close(); } </script>
Maintenant, écrivez ce code et appelez la fonction JavaScript ci-dessus
<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>
Ou simplement:
<a href="" onclick="closeme();">close</a>
la source
Cela fonctionnera:
<script type="text/javascript"> function closeWindowNoPrompt() { window.open('', '_parent', ''); window.close(); } </script>
la source
window.opener=window; window.close();
la source
Le navigateur se plaint parce que vous utilisez JavaScript pour fermer une fenêtre qui n'a pas été ouverte avec JavaScript, c'est-à-dire
window.open('foo.html');
.la source
La meilleure solution que j'ai trouvée est:
this.focus(); self.opener=this; self.close();
la source
Placez le code suivant dans ASPX.
<script language=javascript> function CloseWindow() { window.open('', '_self', ''); window.close(); } </script>
Placez le code suivant dans le code derrière l'événement de clic sur le bouton.
string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>"; Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);
Si vous n'avez aucun traitement avant la fermeture, vous pouvez directement placer le code suivant dans l'ASPX lui-même dans la balise de clic du bouton.
OnClientClick="CloseWindow();"
J'espère que cela t'aides.
la source
Dans ma situation, le code suivant a été intégré dans un fichier 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;
J'ai donc ouvert la console et écrit ce qui suit
PreventExitPop = false
Cela a résolu le problème. Alors, découvrez le code JavaScript et trouvez la ou les variables et attribuez-leur une "valeur" appropriée qui dans mon cas était "fausse"
la source
Je vais publier ceci car c'est ce que j'utilise actuellement pour mon site et cela fonctionne à la fois dans Google Chrome et IE 10 sans recevoir de messages contextuels:
<html> <head> </head> <body onload="window.close();"> </body> </html>
J'ai une fonction sur mon site que je souhaite exécuter pour enregistrer une variable d'activation / désactivation dans la session sans accéder directement à une nouvelle page, je viens donc d'ouvrir une petite page Web contextuelle. Cette page Web se ferme alors immédiatement avec la
onload="window.close();"
fonction.la source
a
withtarget=_blank
pour ouvrir une petite fenêtre contextuelle à une URL spécifique, puis j'utilise finalement JS pour fermer la fenêtre. Son but est que l'URL spécifique enregistre une valeur dans la session pour désactiver les images d'arrière-plan, bien que je la supprimerai bientôt en faveur d'ajax une fois que j'aurai compris comment faire ajax. (toujours en train d'apprendre les ficelles du métier)